import (
"e2mgr/logger"
"e2mgr/models"
- "e2mgr/providers"
+ "e2mgr/providers/httpmsghandlerprovider"
"e2mgr/rNibWriter"
"e2mgr/services"
"e2mgr/sessions"
"github.com/go-ozzo/ozzo-validation"
"github.com/go-ozzo/ozzo-validation/is"
"github.com/golang/protobuf/jsonpb"
- "github.com/julienschmidt/httprouter"
+ "github.com/gorilla/mux"
"net/http"
"net/http/httputil"
"strings"
var messageChannel chan *models.E2RequestMessage
var errorChannel chan error
+type INodebController interface {
+ HandleRequest(writer http.ResponseWriter, request *http.Request)
+ GetNodebIdList (writer http.ResponseWriter, request *http.Request)
+ GetNodeb(writer http.ResponseWriter, request *http.Request)
+ HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request)
+}
+
type NodebController struct {
rmrService *services.RmrService
Logger *logger.Logger
}
}
-
func prettifyRequest(request *http.Request) string {
dump, _ := httputil.DumpRequest(request, true)
requestPrettyPrint := strings.Replace(string(dump), "\r\n", " ", -1)
return strings.Replace(requestPrettyPrint, "\n", "", -1)
}
-func (rc NodebController) HandleRequest(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
+func (rc NodebController) HandleRequest(writer http.ResponseWriter, request *http.Request) {
startTime := time.Now()
rc.Logger.Infof("[Client -> E2 Manager] #nodeb_controller.HandleRequest - request: %v", prettifyRequest(request))
- messageTypeParam := params.ByName("messageType")
- requestHandlerProvider := providers.NewRequestHandlerProvider(rc.rnibWriterProvider)
+ vars := mux.Vars(request)
+ messageTypeParam := vars["messageType"]
+ requestHandlerProvider := httpmsghandlerprovider.NewRequestHandlerProvider(rc.rnibWriterProvider)
handler, err := requestHandlerProvider.GetHandler(rc.Logger, messageTypeParam)
if err != nil {
printHandlingRequestElapsedTimeInMs(rc.Logger, startTime)
}
-func (rc NodebController) GetNodebIdList (writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
+func (rc NodebController) GetNodebIdList (writer http.ResponseWriter, request *http.Request) {
startTime := time.Now()
- rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider())
+ rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider)
nodebIdList, rnibError := rnibReaderService.GetNodebIdList()
if rnibError != nil {
rc.Logger.Errorf("%v", rnibError);
httpStatusCode, errorCode, errorMessage := rnibErrorToHttpError(rnibError)
- handleErrorResponse(rc.Logger,httpStatusCode,errorCode,errorMessage,writer,startTime )
+ handleErrorResponse(rc.Logger, httpStatusCode, errorCode, errorMessage, writer, startTime)
return;
}
- pmList:= utils.ConvertNodebIdListToProtoMessageList(*nodebIdList)
+ pmList := utils.ConvertNodebIdListToProtoMessageList(nodebIdList)
result, err := utils.MarshalProtoMessageListToJsonArray(pmList)
if err != nil {
rc.Logger.Errorf("%v", err);
- handleErrorResponse(rc.Logger,http.StatusInternalServerError,internalErrorCode,internalErrorMessage,writer,startTime )
+ handleErrorResponse(rc.Logger, http.StatusInternalServerError, internalErrorCode, internalErrorMessage, writer, startTime)
return;
}
writer.Write([]byte(result))
}
-func (rc NodebController) GetNodeb(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
+func (rc NodebController) GetNodeb(writer http.ResponseWriter, request *http.Request) {
startTime := time.Now()
- ranName := params.ByName("ranName")
+ vars := mux.Vars(request)
+ ranName := vars["ranName"]
// WAS: respondingNode, rnibError := reader.GetRNibReader().GetNodeb(ranName)
- rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider());
+ rnibReaderService := services.NewRnibReaderService(rc.rnibReaderProvider);
respondingNode, rnibError := rnibReaderService.GetNodeb(ranName)
if rnibError != nil {
rc.Logger.Errorf("%v", rnibError)
writer.Write([]byte(result))
}
-func (rc NodebController) HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
+func (rc NodebController) HandleHealthCheckRequest(writer http.ResponseWriter, request *http.Request) {
//fmt.Println("[X-APP -> Client] #HandleHealthCheckRequest - http status: 200")
writer.WriteHeader(http.StatusOK)
}