X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fserver%2Fserver.go;h=79646c29a30de120bda47d265b6f076365dde6e2;hb=0f6367023720ecc7d7b4b38cbbc4282792172a89;hp=d07b7309a37522125764f01a936207e2e5477db0;hpb=fe1aa1e639246094905f6a9f09a051084bf431ed;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/server/server.go b/dmaap-mediator-producer/internal/server/server.go index d07b7309..79646c29 100644 --- a/dmaap-mediator-producer/internal/server/server.go +++ b/dmaap-mediator-producer/internal/server/server.go @@ -35,19 +35,32 @@ const AddJobPath = "/jobs" const jobIdToken = "infoJobId" const deleteJobPath = AddJobPath + "/{" + jobIdToken + "}" -func NewRouter() *mux.Router { +type ProducerCallbackHandler struct { + jobsManager jobs.JobsManager +} + +func NewProducerCallbackHandler(jm jobs.JobsManager) *ProducerCallbackHandler { + return &ProducerCallbackHandler{ + jobsManager: jm, + } +} + +func NewRouter(jm jobs.JobsManager) *mux.Router { + callbackHandler := NewProducerCallbackHandler(jm) r := mux.NewRouter() r.HandleFunc(StatusPath, statusHandler).Methods(http.MethodGet).Name("status") - r.HandleFunc(AddJobPath, addInfoJobHandler).Methods(http.MethodPost).Name("add") - r.HandleFunc(deleteJobPath, deleteInfoJobHandler).Methods(http.MethodDelete).Name("delete") + r.HandleFunc(AddJobPath, callbackHandler.addInfoJobHandler).Methods(http.MethodPost).Name("add") + r.HandleFunc(deleteJobPath, callbackHandler.deleteInfoJobHandler).Methods(http.MethodDelete).Name("delete") r.NotFoundHandler = ¬FoundHandler{} r.MethodNotAllowedHandler = &methodNotAllowedHandler{} return r } -func statusHandler(w http.ResponseWriter, r *http.Request) {} +func statusHandler(w http.ResponseWriter, r *http.Request) { + // Just respond OK to show the server is alive for now. Might be extended later. +} -func addInfoJobHandler(w http.ResponseWriter, r *http.Request) { +func (h *ProducerCallbackHandler) addInfoJobHandler(w http.ResponseWriter, r *http.Request) { b, readErr := ioutil.ReadAll(r.Body) if readErr != nil { http.Error(w, fmt.Sprintf("Unable to read body due to: %v", readErr), http.StatusBadRequest) @@ -58,12 +71,12 @@ func addInfoJobHandler(w http.ResponseWriter, r *http.Request) { http.Error(w, fmt.Sprintf("Invalid json body. Cause: %v", unmarshalErr), http.StatusBadRequest) return } - if err := jobs.AddJob(jobInfo); err != nil { + if err := h.jobsManager.AddJobFromRESTCall(jobInfo); err != nil { http.Error(w, fmt.Sprintf("Invalid job info. Cause: %v", err), http.StatusBadRequest) } } -func deleteInfoJobHandler(w http.ResponseWriter, r *http.Request) { +func (h *ProducerCallbackHandler) deleteInfoJobHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) id, ok := vars[jobIdToken] if !ok { @@ -71,7 +84,7 @@ func deleteInfoJobHandler(w http.ResponseWriter, r *http.Request) { return } - jobs.DeleteJob(id) + h.jobsManager.DeleteJobFromRESTCall(id) } type notFoundHandler struct{}