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,
}
}
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)
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 {