Delete Policy Instance API feature.
[ric-plt/a1.git] / a1-go / pkg / restful / restful.go
index 91b9659..b0663dd 100644 (file)
@@ -122,6 +122,30 @@ func (r *Restful) setupHandler() *operations.A1API {
 
        })
 
+       api.A1MediatorA1ControllerGetPolicyInstanceStatusHandler = a1_mediator.A1ControllerGetPolicyInstanceStatusHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyInstanceStatusParams) middleware.Responder {
+               a1.Logger.Debug("handler for get policy instance status")
+               if resp, err := r.rh.GetPolicyInstanceStatus(models.PolicyTypeID(params.PolicyTypeID), models.PolicyInstanceID(params.PolicyInstanceID)); err == nil {
+                       return a1_mediator.NewA1ControllerGetPolicyInstanceStatusOK().WithPayload(resp)
+               }
+               if r.rh.IsPolicyInstanceNotFound(err) {
+                       return a1_mediator.NewA1ControllerGetPolicyInstanceStatusNotFound()
+               }
+               return a1_mediator.NewA1ControllerGetPolicyInstanceStatusServiceUnavailable()
+       })
+
+       api.A1MediatorA1ControllerDeletePolicyInstanceHandler = a1_mediator.A1ControllerDeletePolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerDeletePolicyInstanceParams) middleware.Responder {
+               a1.Logger.Debug("handler for delete policy instance")
+               if err := r.rh.DeletePolicyInstance(models.PolicyTypeID(params.PolicyTypeID), models.PolicyInstanceID(params.PolicyInstanceID)); err != nil {
+                       if r.rh.CanPolicyInstanceBeDeleted(err) {
+                               return a1_mediator.NewA1ControllerDeletePolicyInstanceNotFound()
+                       }
+                       return a1_mediator.NewA1ControllerDeletePolicyInstanceServiceUnavailable()
+               }
+
+               return a1_mediator.NewA1ControllerDeletePolicyInstanceAccepted()
+
+       })
+       
        return api
 
 }