2 // ========================LICENSE_START=================================
5 // Copyright (C) 2021: Nordix Foundation
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 // ========================LICENSE_END===================================
29 "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobs"
32 func StatusHandler(w http.ResponseWriter, r *http.Request) {
33 if r.URL.Path != "/" {
34 http.Error(w, "404 not found.", http.StatusNotFound)
38 if r.Method != "GET" {
39 http.Error(w, "Method is not supported.", http.StatusMethodNotAllowed)
43 fmt.Fprintf(w, "All is well!")
46 func CreateInfoJobHandler(w http.ResponseWriter, r *http.Request) {
47 if r.URL.Path != "/producer_simulator/info_job" {
48 http.Error(w, "404 not found.", http.StatusNotFound)
52 if r.Method != "POST" {
53 http.Error(w, "Method is not supported.", http.StatusMethodNotAllowed)
57 b, readErr := ioutil.ReadAll(r.Body)
59 http.Error(w, fmt.Sprintf("Unable to read body due to: %v", readErr), http.StatusBadRequest)
62 jobInfo := jobs.JobInfo{}
63 if unmarshalErr := json.Unmarshal(b, &jobInfo); unmarshalErr != nil {
64 http.Error(w, fmt.Sprintf("Invalid json body. Cause: %v", unmarshalErr), http.StatusBadRequest)
67 if err := jobs.AddJob(jobInfo); err != nil {
68 http.Error(w, fmt.Sprintf("Invalid job info. Cause: %v", err), http.StatusBadRequest)
72 func CreateServer(port int, handlerFunc func(http.ResponseWriter, *http.Request)) *http.Server {
74 mux := http.NewServeMux()
75 mux.HandleFunc("/", handlerFunc)
76 server := http.Server{
77 Addr: fmt.Sprintf(":%v", port), // :{port}