return sendCoreError(ctx, http.StatusBadRequest, fmt.Sprintf(errMsg, "invalid format for invoker"))
}
- if im.isInvokerOnboarded(newInvoker) {
- return sendCoreError(ctx, http.StatusForbidden, fmt.Sprintf(errMsg, "invoker already onboarded"))
+ if err := im.isInvokerOnboarded(newInvoker); err != nil {
+ return sendCoreError(ctx, http.StatusForbidden, fmt.Sprintf(errMsg, err))
}
if err := im.validateInvoker(newInvoker, ctx); err != nil {
return nil
}
-func (im *InvokerManager) isInvokerOnboarded(newInvoker invokerapi.APIInvokerEnrolmentDetails) bool {
+func (im *InvokerManager) isInvokerOnboarded(newInvoker invokerapi.APIInvokerEnrolmentDetails) error {
for _, invoker := range im.onboardedInvokers {
- if invoker.IsOnboarded(newInvoker) {
- return true
+ if err := invoker.ValidateAlreadyOnboarded(newInvoker); err != nil {
+ return err
}
}
- return false
+ return nil
}
func (im *InvokerManager) prepareNewInvoker(newInvoker *invokerapi.APIInvokerEnrolmentDetails) {