Add get swagger path for APIs
[nonrtric/plt/sme.git] / capifcore / internal / invokermanagement / invokermanagement.go
index 1d8582d..7f5782e 100644 (file)
@@ -41,19 +41,20 @@ import (
 type InvokerRegister interface {
        IsInvokerRegistered(invokerId string) bool
        VerifyInvokerSecret(invokerId, secret string) bool
+       GetInvokerApiList(invokerId string) *invokerapi.APIList
 }
 
 type InvokerManager struct {
        onboardedInvokers map[string]invokerapi.APIInvokerEnrolmentDetails
-       apiRegister       publishservice.APIRegister
+       publishRegister   publishservice.PublishRegister
        nextId            int64
        lock              sync.Mutex
 }
 
-func NewInvokerManager(apiRegister publishservice.APIRegister) *InvokerManager {
+func NewInvokerManager(publishRegister publishservice.PublishRegister) *InvokerManager {
        return &InvokerManager{
                onboardedInvokers: make(map[string]invokerapi.APIInvokerEnrolmentDetails),
-               apiRegister:       apiRegister,
+               publishRegister:   publishRegister,
                nextId:            1000,
        }
 }
@@ -77,6 +78,14 @@ func (im *InvokerManager) VerifyInvokerSecret(invokerId, secret string) bool {
        return verified
 }
 
+func (im *InvokerManager) GetInvokerApiList(invokerId string) *invokerapi.APIList {
+       invoker, ok := im.onboardedInvokers[invokerId]
+       if ok {
+               return invoker.ApiList
+       }
+       return nil
+}
+
 func (im *InvokerManager) PostOnboardedInvokers(ctx echo.Context) error {
        var newInvoker invokerapi.APIInvokerEnrolmentDetails
        err := ctx.Bind(&newInvoker)
@@ -170,18 +179,18 @@ func (im *InvokerManager) validateInvoker(invoker invokerapi.APIInvokerEnrolment
                return true, sendCoreError(ctx, http.StatusBadRequest, "Invoker missing required OnboardingInformation.ApiInvokerPublicKey")
        }
 
-       if !im.areAPIsRegistered(invoker.ApiList) {
+       if !im.areAPIsPublished(invoker.ApiList) {
                return true, sendCoreError(ctx, http.StatusBadRequest, "Some APIs needed by invoker are not registered")
        }
 
        return false, nil
 }
 
-func (im *InvokerManager) areAPIsRegistered(apis *invokerapi.APIList) bool {
+func (im *InvokerManager) areAPIsPublished(apis *invokerapi.APIList) bool {
        if apis == nil {
                return true
        }
-       return im.apiRegister.AreAPIsRegistered((*[]publishapi.ServiceAPIDescription)(apis))
+       return im.publishRegister.AreAPIsPublished((*[]publishapi.ServiceAPIDescription)(apis))
 }
 
 func (im *InvokerManager) getId(invokerInfo *string) *string {