Add release yaml file for ric-plt-e2mgr:3.0.1
[ric-plt/e2mgr.git] / E2Manager / handlers / httpmsghandlers / setup_request_handler.go
index a792a45..9233411 100644 (file)
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-//
+
+//  This source code is part of the near-RT RIC (RAN Intelligent Controller)
+//  platform project (RICP).
+
 package httpmsghandlers
 
 import (
@@ -21,11 +24,10 @@ import (
        "e2mgr/logger"
        "e2mgr/managers"
        "e2mgr/models"
-       "e2mgr/rNibWriter"
        "e2mgr/rnibBuilders"
+       "e2mgr/services"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
-       "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
        "github.com/go-ozzo/ozzo-validation"
        "github.com/go-ozzo/ozzo-validation/is"
 )
@@ -36,48 +38,46 @@ const (
 )
 
 type SetupRequestHandler struct {
-       readerProvider  func() reader.RNibReader
-       writerProvider  func() rNibWriter.RNibWriter
+       rNibDataService services.RNibDataService
        logger          *logger.Logger
        ranSetupManager *managers.RanSetupManager
        protocol        entities.E2ApplicationProtocol
 }
 
-func NewSetupRequestHandler(logger *logger.Logger, writerProvider func() rNibWriter.RNibWriter, readerProvider func() reader.RNibReader,
+func NewSetupRequestHandler(logger *logger.Logger, rNibDataService services.RNibDataService,
        ranSetupManager *managers.RanSetupManager, protocol entities.E2ApplicationProtocol) *SetupRequestHandler {
        return &SetupRequestHandler{
                logger:          logger,
-               readerProvider:  readerProvider,
-               writerProvider:  writerProvider,
+               rNibDataService:  rNibDataService,
                ranSetupManager: ranSetupManager,
                protocol:        protocol,
        }
 }
 
-func (handler *SetupRequestHandler) Handle(request models.Request) error {
+func (handler *SetupRequestHandler) Handle(request models.Request) (models.IResponse, error) {
 
        setupRequest := request.(models.SetupRequest)
 
        err := handler.validateRequestDetails(setupRequest)
        if err != nil {
-               return err
+               return nil, err
        }
 
-       nodebInfo, err := handler.readerProvider().GetNodeb(setupRequest.RanName)
+       nodebInfo, err := handler.rNibDataService.GetNodeb(setupRequest.RanName)
        if err != nil {
                _, ok := err.(*common.ResourceNotFoundError)
                if !ok {
                        handler.logger.Errorf("#SetupRequestHandler.Handle - failed to get nodeB entity for ran name: %v from RNIB. Error: %s",
                                setupRequest.RanName, err.Error())
-                       return e2managererrors.NewRnibDbError()
+                       return nil, e2managererrors.NewRnibDbError()
                }
 
                result := handler.connectNewRan(&setupRequest, handler.protocol)
-               return result
+               return nil, result
        }
 
        result := handler.connectExistingRan(nodebInfo)
-       return result
+       return nil, result
 }
 
 func (handler *SetupRequestHandler) connectExistingRan(nodebInfo *entities.NodebInfo) error {
@@ -101,7 +101,7 @@ func (handler *SetupRequestHandler) connectNewRan(request *models.SetupRequest,
 
        nodebInfo, nodebIdentity := rnibBuilders.CreateInitialNodeInfo(request, protocol)
 
-       rNibErr := handler.writerProvider().SaveNodeb(nodebIdentity, nodebInfo)
+       rNibErr := handler.rNibDataService.SaveNodeb(nodebIdentity, nodebInfo)
        if rNibErr != nil {
                handler.logger.Errorf("#SetupRequestHandler.connectNewRan - failed to initial nodeb entity for ran name: %v in RNIB. Error: %s", request.RanName, rNibErr.Error())
                return e2managererrors.NewRnibDbError()