...

Source file src/edge-infra.dev/pkg/edge/api/graph/mapper/mapper_organization.go

Documentation: edge-infra.dev/pkg/edge/api/graph/mapper

     1  package mapper
     2  
     3  import (
     4  	"strings"
     5  
     6  	"edge-infra.dev/pkg/edge/api/bsl/types"
     7  	"edge-infra.dev/pkg/edge/api/graph/model"
     8  	"edge-infra.dev/pkg/edge/bsl"
     9  	"edge-infra.dev/pkg/edge/constants/api/banner"
    10  )
    11  
    12  var (
    13  	eu  = string(banner.EU)
    14  	org = string(banner.Org)
    15  )
    16  
    17  func ToEnterpriseUnitData(id, name, description string, enterpriseTypeName types.EnterpriseType, active bool) *types.EnterpriseUnitData {
    18  	return &types.EnterpriseUnitData{
    19  		EnterpriseUnitID:   id,
    20  		Name:               name,
    21  		Description:        description,
    22  		Active:             active,
    23  		EnterpriseTypeName: enterpriseTypeName,
    24  	}
    25  }
    26  
    27  func ToEdgeResponsePayload(statusCode int, message string) *model.EdgeResponsePayload {
    28  	return &model.EdgeResponsePayload{
    29  		StatusCode: statusCode,
    30  		Message:    message,
    31  	}
    32  }
    33  
    34  func EnterpriseUnitsToBanners(data []*types.EnterpriseUnitData) []*model.Banner {
    35  	var orgs []*model.Banner
    36  	for _, eurd := range data {
    37  		orgs = append(orgs, EnterpriseUnitToBanner(eurd))
    38  	}
    39  	return orgs
    40  }
    41  
    42  func SubOrgsToBanners(data []*types.OrganizationViewData) []*model.Banner {
    43  	var orgs []*model.Banner
    44  	for _, eurd := range data {
    45  		orgs = append(orgs, SubOrgToBanner(eurd))
    46  	}
    47  	return orgs
    48  }
    49  
    50  func EnterpriseUnitToBanner(data *types.EnterpriseUnitData) *model.Banner {
    51  	return &model.Banner{
    52  		Name:        data.Name,
    53  		Description: &data.Description,
    54  		BannerBSLId: data.EnterpriseUnitID,
    55  		BannerType:  eu,
    56  	}
    57  }
    58  
    59  func SubOrgToBanner(data *types.OrganizationViewData) *model.Banner {
    60  	return &model.Banner{
    61  		Name:        stripRootOrg(data.OrganizationName),
    62  		Description: &data.Description,
    63  		BannerBSLId: data.ID,
    64  		BannerType:  org,
    65  	}
    66  }
    67  
    68  func SubExternalUsersToBanners(data []*types.ExternalUserData) []*model.Banner {
    69  	var orgs []*model.Banner
    70  	for _, eurd := range data {
    71  		if eurd.Primary {
    72  			continue
    73  		}
    74  		orgs = append(orgs, SubExternalUserToBanner(eurd))
    75  	}
    76  	return orgs
    77  }
    78  
    79  func SubExternalUserToBanner(data *types.ExternalUserData) *model.Banner {
    80  	return &model.Banner{
    81  		Name:        stripRootOrg(data.OrganizationName),
    82  		Description: &data.Description,
    83  		BannerBSLId: data.ID,
    84  		BannerType:  org,
    85  	}
    86  }
    87  
    88  // stripRootOrg strips the root org folder structure name from the org name
    89  // i.e. "/customers/edge-dev0-edge-b413cb/test-sub-org-banner-2/" becomes test-sub-org-banner-2
    90  func stripRootOrg(rootOrg string) string {
    91  	trimmedOrg := strings.Trim(rootOrg, "/")
    92  	orgEntries := strings.Split(trimmedOrg, "/")
    93  	return orgEntries[len(orgEntries)-1]
    94  }
    95  
    96  func ToOrgBanner(data *types.CreateOrganizationResponse) *model.Banner {
    97  	return &model.Banner{
    98  		Name:        data.OrganizationName,
    99  		Description: &data.Description,
   100  		BannerBSLId: data.ID,
   101  		BannerType:  org,
   102  	}
   103  }
   104  
   105  func BSLOrgToBanner(bslOrg *bsl.BSLOrganization) *model.Banner {
   106  	return &model.Banner{
   107  		Name:        bslOrg.OrganizationName,
   108  		Description: &bslOrg.Description,
   109  		BannerBSLId: bslOrg.ID,
   110  	}
   111  }
   112  

View as plain text