Implementation of A1-EI data delivery API
[ric-plt/a1.git] / a1-go / pkg / restful / restful.go
index 26a229f..d8d1e92 100644 (file)
@@ -28,6 +28,7 @@ import (
        "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/models"
        "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi"
        "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi/operations"
+       "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi/operations/a1_e_i_data_delivery"
        "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi/operations/a1_mediator"
        "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/resthooks"
        "github.com/go-openapi/loads"
@@ -68,10 +69,92 @@ func (r *Restful) setupHandler() *operations.A1API {
        })
 
        api.A1MediatorA1ControllerGetPolicyTypeHandler = a1_mediator.A1ControllerGetPolicyTypeHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyTypeParams) middleware.Responder {
-               a1.Logger.Error("handler for get policy type from policytypeID")
+               a1.Logger.Debug("handler for get policy type from policytypeID")
                return a1_mediator.NewA1ControllerGetPolicyTypeOK().WithPayload(r.rh.GetPolicyType(models.PolicyTypeID(params.PolicyTypeID)))
        })
 
+       api.A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler = a1_mediator.A1ControllerCreateOrReplacePolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerCreateOrReplacePolicyInstanceParams) middleware.Responder {
+               a1.Logger.Debug("handler for create policy type instance ")
+               if err = r.rh.CreatePolicyInstance(models.PolicyTypeID(params.PolicyTypeID), models.PolicyInstanceID(params.PolicyInstanceID), params.Body); err == nil {
+                       return a1_mediator.NewA1ControllerCreateOrReplacePolicyInstanceAccepted()
+               }
+               if r.rh.IsValidJson(err) {
+                       return a1_mediator.NewA1ControllerCreateOrReplacePolicyInstanceBadRequest()
+               }
+               return a1_mediator.NewA1ControllerCreateOrReplacePolicyInstanceServiceUnavailable()
+
+       })
+
+       api.A1MediatorA1ControllerGetPolicyInstanceHandler = a1_mediator.A1ControllerGetPolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyInstanceParams) middleware.Responder {
+               a1.Logger.Debug("handler for get policy instance from policytypeID")
+               if resp, err := r.rh.GetPolicyInstance(models.PolicyTypeID(params.PolicyTypeID), models.PolicyInstanceID(params.PolicyInstanceID)); err == nil {
+                       return a1_mediator.NewA1ControllerGetPolicyInstanceOK().WithPayload(resp)
+               }
+               if r.rh.IsPolicyInstanceNotFound(err) {
+                       return a1_mediator.NewA1ControllerGetPolicyInstanceNotFound()
+               }
+               return a1_mediator.NewA1ControllerGetPolicyInstanceServiceUnavailable()
+       })
+
+       api.A1MediatorA1ControllerGetAllInstancesForTypeHandler = a1_mediator.A1ControllerGetAllInstancesForTypeHandlerFunc(func(params a1_mediator.A1ControllerGetAllInstancesForTypeParams) middleware.Responder {
+               a1.Logger.Debug("handler for get all policy instance")
+               if resp, err := r.rh.GetAllPolicyInstance(models.PolicyTypeID(params.PolicyTypeID)); err == nil {
+                       if resp != nil {
+                               return a1_mediator.NewA1ControllerGetAllInstancesForTypeOK().WithPayload(resp)
+                       }
+               }
+               if r.rh.IsPolicyInstanceNotFound(err) {
+                       return a1_mediator.NewA1ControllerGetPolicyInstanceNotFound()
+               }
+               return a1_mediator.NewA1ControllerGetAllInstancesForTypeServiceUnavailable()
+
+       })
+
+       api.A1MediatorA1ControllerDeletePolicyTypeHandler = a1_mediator.A1ControllerDeletePolicyTypeHandlerFunc(func(params a1_mediator.A1ControllerDeletePolicyTypeParams) middleware.Responder {
+               a1.Logger.Debug("handler for delete policy type")
+               if err := r.rh.DeletePolicyType(models.PolicyTypeID(params.PolicyTypeID)); err != nil {
+                       if r.rh.CanPolicyTypeBeDeleted(err) {
+                               return a1_mediator.NewA1ControllerDeletePolicyTypeBadRequest()
+                       }
+                       return a1_mediator.NewA1ControllerDeletePolicyTypeServiceUnavailable()
+               }
+
+               return a1_mediator.NewA1ControllerDeletePolicyTypeNoContent()
+
+       })
+
+       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()
+
+       })
+
+       api.A1eiDataDeliveryA1ControllerDataDeliveryHandler = a1_e_i_data_delivery.A1ControllerDataDeliveryHandlerFunc(func(params a1_e_i_data_delivery.A1ControllerDataDeliveryParams) middleware.Responder {
+               a1.Logger.Debug("handler for EI data delivery")
+               if err = r.rh.DataDelivery(params.Body); err != nil {
+                       return a1_e_i_data_delivery.NewA1ControllerDataDeliveryNotFound()
+               }
+               return a1_e_i_data_delivery.NewA1ControllerDataDeliveryOK()
+       })
+
        return api
 
 }
@@ -80,7 +163,7 @@ func (r *Restful) Run() {
 
        server := restapi.NewServer(r.api)
        defer server.Shutdown()
-       server.Port = 8080
+       server.Port = 10000
        server.Host = "0.0.0.0"
        if err := server.Serve(); err != nil {
                log.Fatal(err.Error())