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 "github.com/gorilla/mux"
33 port := flag.Int("port", 8434, "The port this stub will listen on")
35 fmt.Println("Starting ICS stub on port ", *port)
38 r.HandleFunc("/data-producer/v1/info-types/{typeId}", handleTypeRegistration).Methods(http.MethodPut, http.MethodPut)
39 r.HandleFunc("/data-producer/v1/info-producers/{producerId}", handleProducerRegistration).Methods(http.MethodPut, http.MethodPut)
40 fmt.Println(http.ListenAndServe(fmt.Sprintf(":%v", *port), r))
43 func handleTypeRegistration(w http.ResponseWriter, r *http.Request) {
45 id, ok := vars["typeId"]
47 fmt.Printf("Registered type %v with schema: %v\n", id, readBody(r))
51 func handleProducerRegistration(w http.ResponseWriter, r *http.Request) {
53 id, ok := vars["producerId"]
55 fmt.Printf("Registered producer %v with data: %v\n", id, readBody(r))
59 func readBody(r *http.Request) string {
60 b, readErr := ioutil.ReadAll(r.Body)
62 return fmt.Sprintf("Unable to read body due to: %v", readErr)