X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=capifcore%2Finternal%2Fprovidermanagement%2Fprovidermanagement.go;fp=capifcore%2Finternal%2Fprovidermanagement%2Fprovidermanagement.go;h=63ed4d8c35f24b661ae32b5be4f9ee3ff28ba590;hb=ff18417912d0634ea14fd02197cd285aba403b3c;hp=b9579611e5ecf9b4484a949b0a4d9733926aee3f;hpb=712247934a771ca533b0febcca4b2702225b17cb;p=nonrtric%2Fplt%2Fsme.git diff --git a/capifcore/internal/providermanagement/providermanagement.go b/capifcore/internal/providermanagement/providermanagement.go index b957961..63ed4d8 100644 --- a/capifcore/internal/providermanagement/providermanagement.go +++ b/capifcore/internal/providermanagement/providermanagement.go @@ -36,7 +36,8 @@ import ( //go:generate mockery --name ServiceRegister type ServiceRegister interface { - IsFunctionRegistered(aefId string) bool + IsFunctionRegistered(functionId string) bool + GetAefsForPublisher(apfId string) []string } type ProviderManager struct { @@ -50,12 +51,12 @@ func NewProviderManager() *ProviderManager { } } -func (pm *ProviderManager) IsFunctionRegistered(aefId string) bool { +func (pm *ProviderManager) IsFunctionRegistered(functionId string) bool { registered := false out: for _, provider := range pm.onboardedProviders { for _, registeredFunc := range *provider.ApiProvFuncs { - if *registeredFunc.ApiProvFuncId == aefId { + if *registeredFunc.ApiProvFuncId == functionId { registered = true break out } @@ -65,6 +66,27 @@ out: return registered } +func (pm *ProviderManager) GetAefsForPublisher(apfId string) []string { + for _, provider := range pm.onboardedProviders { + for _, registeredFunc := range *provider.ApiProvFuncs { + if *registeredFunc.ApiProvFuncId == apfId && registeredFunc.ApiProvFuncRole == provapi.ApiProviderFuncRoleAPF { + return getExposedFuncs(provider.ApiProvFuncs) + } + } + } + return nil +} + +func getExposedFuncs(providerFuncs *[]provapi.APIProviderFunctionDetails) []string { + exposedFuncs := []string{} + for _, registeredFunc := range *providerFuncs { + if registeredFunc.ApiProvFuncRole == provapi.ApiProviderFuncRoleAEF { + exposedFuncs = append(exposedFuncs, *registeredFunc.ApiProvFuncId) + } + } + return exposedFuncs +} + func (pm *ProviderManager) PostRegistrations(ctx echo.Context) error { var newProvider provapi.APIProviderEnrolmentDetails err := ctx.Bind(&newProvider)