package mapper import ( "strings" "edge-infra.dev/pkg/edge/api/bsl/types" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/bsl" "edge-infra.dev/pkg/edge/constants/api/banner" ) var ( eu = string(banner.EU) org = string(banner.Org) ) func ToEnterpriseUnitData(id, name, description string, enterpriseTypeName types.EnterpriseType, active bool) *types.EnterpriseUnitData { return &types.EnterpriseUnitData{ EnterpriseUnitID: id, Name: name, Description: description, Active: active, EnterpriseTypeName: enterpriseTypeName, } } func ToEdgeResponsePayload(statusCode int, message string) *model.EdgeResponsePayload { return &model.EdgeResponsePayload{ StatusCode: statusCode, Message: message, } } func EnterpriseUnitsToBanners(data []*types.EnterpriseUnitData) []*model.Banner { var orgs []*model.Banner for _, eurd := range data { orgs = append(orgs, EnterpriseUnitToBanner(eurd)) } return orgs } func SubOrgsToBanners(data []*types.OrganizationViewData) []*model.Banner { var orgs []*model.Banner for _, eurd := range data { orgs = append(orgs, SubOrgToBanner(eurd)) } return orgs } func EnterpriseUnitToBanner(data *types.EnterpriseUnitData) *model.Banner { return &model.Banner{ Name: data.Name, Description: &data.Description, BannerBSLId: data.EnterpriseUnitID, BannerType: eu, } } func SubOrgToBanner(data *types.OrganizationViewData) *model.Banner { return &model.Banner{ Name: stripRootOrg(data.OrganizationName), Description: &data.Description, BannerBSLId: data.ID, BannerType: org, } } func SubExternalUsersToBanners(data []*types.ExternalUserData) []*model.Banner { var orgs []*model.Banner for _, eurd := range data { if eurd.Primary { continue } orgs = append(orgs, SubExternalUserToBanner(eurd)) } return orgs } func SubExternalUserToBanner(data *types.ExternalUserData) *model.Banner { return &model.Banner{ Name: stripRootOrg(data.OrganizationName), Description: &data.Description, BannerBSLId: data.ID, BannerType: org, } } // stripRootOrg strips the root org folder structure name from the org name // i.e. "/customers/edge-dev0-edge-b413cb/test-sub-org-banner-2/" becomes test-sub-org-banner-2 func stripRootOrg(rootOrg string) string { trimmedOrg := strings.Trim(rootOrg, "/") orgEntries := strings.Split(trimmedOrg, "/") return orgEntries[len(orgEntries)-1] } func ToOrgBanner(data *types.CreateOrganizationResponse) *model.Banner { return &model.Banner{ Name: data.OrganizationName, Description: &data.Description, BannerBSLId: data.ID, BannerType: org, } } func BSLOrgToBanner(bslOrg *bsl.BSLOrganization) *model.Banner { return &model.Banner{ Name: bslOrg.OrganizationName, Description: &bslOrg.Description, BannerBSLId: bslOrg.ID, } }