Loading go-apps/meep-loc-serv/api/swagger.yaml +2083 −3839 File changed.Preview size limit exceeded, changes collapsed. Show changes go-apps/meep-loc-serv/server/loc-serv.go +131 −25 Original line number Diff line number Diff line Loading @@ -897,16 +897,21 @@ func userTrackingSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2013 userTrackingSub := new(UserTrackingSubscription) response.UserTrackingSubscription = userTrackingSub var body Body6 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&userTrackingSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } userTrackingSub := body.UserTrackingSubscription if userTrackingSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextUserSubscriptionIdAvailable nextUserSubscriptionIdAvailable++ Loading @@ -917,6 +922,8 @@ func userTrackingSubPost(w http.ResponseWriter, r *http.Request) { _ = rc.JSONSetEntry(baseKey+typeUserSubscription+":"+subsIdStr, ".", convertUserSubscriptionToJson(userTrackingSub)) response.UserTrackingSubscription = userTrackingSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -932,25 +939,47 @@ func userTrackingSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20014 userTrackingSub := new(UserTrackingSubscription) response.UserTrackingSubscription = userTrackingSub var body Body6 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&userTrackingSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } userTrackingSub := body.UserTrackingSubscription if userTrackingSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(userTrackingSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] userTrackingSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/userTracking/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if userSubscriptionMap[subsId] == "" { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeUserSubscription+":"+subsIdStr, ".", convertUserSubscriptionToJson(userTrackingSub)) deregisterUser(subsIdStr) registerUser(userTrackingSub.Address, userTrackingSub.UserEventCriteria, subsIdStr) response.UserTrackingSubscription = userTrackingSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1049,16 +1078,21 @@ func zonalTrafficSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2014 zonalTrafficSub := new(ZonalTrafficSubscription) response.ZonalTrafficSubscription = zonalTrafficSub var body Body8 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zonalTrafficSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zonalTrafficSub := body.ZonalTrafficSubscription if zonalTrafficSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextZonalSubscriptionIdAvailable nextZonalSubscriptionIdAvailable++ Loading @@ -1081,6 +1115,8 @@ func zonalTrafficSubPost(w http.ResponseWriter, r *http.Request) { registerZonal(zonalTrafficSub.ZoneId, zonalTrafficSub.UserEventCriteria, subsIdStr) response.ZonalTrafficSubscription = zonalTrafficSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -1096,25 +1132,47 @@ func zonalTrafficSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20017 zonalTrafficSub := new(ZonalTrafficSubscription) response.ZonalTrafficSubscription = zonalTrafficSub var body Body8 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zonalTrafficSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zonalTrafficSub := body.ZonalTrafficSubscription if zonalTrafficSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(zonalTrafficSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] zonalTrafficSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/zonalTraffic/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if zonalSubscriptionMap[subsId] == "" { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeZonalSubscription+":"+subsIdStr, ".", convertZonalSubscriptionToJson(zonalTrafficSub)) deregisterZonal(subsIdStr) registerZonal(zonalTrafficSub.ZoneId, zonalTrafficSub.UserEventCriteria, subsIdStr) response.ZonalTrafficSubscription = zonalTrafficSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1214,16 +1272,21 @@ func zoneStatusSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2015 zoneStatusSub := new(ZoneStatusSubscription) response.ZoneStatusSubscription = zoneStatusSub var body Body10 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zoneStatusSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zoneStatusSub := body.ZoneStatusSubscription if zoneStatusSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextZoneStatusSubscriptionIdAvailable nextZoneStatusSubscriptionIdAvailable++ Loading @@ -1236,6 +1299,8 @@ func zoneStatusSubPost(w http.ResponseWriter, r *http.Request) { registerZoneStatus(zoneStatusSub.ZoneId, zoneStatusSub.NumberOfUsersZoneThreshold, zoneStatusSub.NumberOfUsersAPThreshold, zoneStatusSub.OperationStatus, subsIdStr) response.ZoneStatusSubscription = zoneStatusSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -1251,26 +1316,48 @@ func zoneStatusSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20020 zoneStatusSub := new(ZoneStatusSubscription) response.ZoneStatusSubscription = zoneStatusSub var body Body10 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zoneStatusSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zoneStatusSub := body.ZoneStatusSubscription if zoneStatusSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(zoneStatusSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] zoneStatusSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/zoneStatus/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if zoneStatusSubscriptionMap[subsId] == nil { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeZoneStatusSubscription+":"+subsIdStr, ".", convertZoneStatusSubscriptionToJson(zoneStatusSub)) deregisterZoneStatus(subsIdStr) registerZoneStatus(zoneStatusSub.ZoneId, zoneStatusSub.NumberOfUsersZoneThreshold, zoneStatusSub.NumberOfUsersAPThreshold, zoneStatusSub.OperationStatus, subsIdStr) response.ZoneStatusSubscription = zoneStatusSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1356,8 +1443,17 @@ func updateUserInfo(address string, zoneId string, accessPointId string, longitu userInfo.LocationInfo.Accuracy = 1 } //we only support shape != 7 in locationInfo userInfo.LocationInfo.Longitude[0] = *longitude userInfo.LocationInfo.Latitude[0] = *latitude userInfo.LocationInfo.Shape = "2" userInfo.LocationInfo.Longitude = nil userInfo.LocationInfo.Longitude = append(userInfo.LocationInfo.Longitude, *longitude) userInfo.LocationInfo.Latitude = nil userInfo.LocationInfo.Latitude = append(userInfo.LocationInfo.Latitude, *latitude) seconds := time.Now().Unix() var timeStamp TimeStamp timeStamp.Seconds = int32(seconds) userInfo.LocationInfo.Timestamp = &timeStamp } // Update User info in DB & Send notifications Loading Loading @@ -1426,9 +1522,19 @@ func updateAccessPointInfo(zoneId string, apId string, conTypeStr string, opStat apInfo.LocationInfo = new(LocationInfo) apInfo.LocationInfo.Accuracy = 1 } //we only support shape != 7 in locationInfo apInfo.LocationInfo.Longitude[0] = *longitude apInfo.LocationInfo.Latitude[0] = *latitude apInfo.LocationInfo.Shape = "2" apInfo.LocationInfo.Longitude = nil apInfo.LocationInfo.Longitude = append(apInfo.LocationInfo.Longitude, *longitude) apInfo.LocationInfo.Latitude = nil apInfo.LocationInfo.Latitude = append(apInfo.LocationInfo.Latitude, *latitude) seconds := time.Now().Unix() var timeStamp TimeStamp timeStamp.Seconds = int32(seconds) apInfo.LocationInfo.Timestamp = &timeStamp } // Update AP info in DB & Send notifications Loading go-apps/meep-loc-serv/server/loc-serv_test.go +21 −12 Original line number Diff line number Diff line Loading @@ -615,7 +615,8 @@ func testZonalSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -673,7 +674,8 @@ func testZonalSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -703,7 +705,7 @@ func testZonalSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/zonalTraffic", bytes.NewBuffer(body), vars, nil, http.StatusOK, ZonalTrafficSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/zonalTraffic", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, ZonalTrafficSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -949,7 +951,8 @@ func testUserSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1006,7 +1009,8 @@ func testUserSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1036,7 +1040,7 @@ func testUserSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/userTracking", bytes.NewBuffer(body), vars, nil, http.StatusOK, UserTrackingSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/userTracking", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, UserTrackingSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -1284,7 +1288,8 @@ func testZoneStatusSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZoneStatusSubscription) expectedBody := Body10{&expectedZoneStatusSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1342,7 +1347,8 @@ func testZoneStatusSubscriptionPut(t *testing.T, subscriptionId string, expectSu /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZoneStatusSubscription) expectedBody := Body10{&expectedZoneStatusSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1372,7 +1378,7 @@ func testZoneStatusSubscriptionPut(t *testing.T, subscriptionId string, expectSu } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/zoneStatus", bytes.NewBuffer(body), vars, nil, http.StatusOK, ZoneStatusSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/zoneStatus", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, ZoneStatusSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -1792,7 +1798,8 @@ func TestUserSubscriptionNotification(t *testing.T) { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1902,12 +1909,14 @@ func TestZoneSubscriptionNotification(t *testing.T) { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } body2, err := json.Marshal(expectedZonalTrafficSubscription2) expectedBody2 := Body8{&expectedZonalTrafficSubscription2} body2, err := json.Marshal(expectedBody2) if err != nil { t.Fatalf(err.Error()) } Loading go-apps/meep-sandbox-ctrl/entrypoint.sh +4 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ echo "USER_SWAGGER_SANDBOX: ${USER_SWAGGER_SANDBOX}" for file in /swagger/*-api.yaml; do echo "Prepending [${MEEP_SANDBOX_NAME}] to basepath in: $file" sed -i 's,basePath: \"/\?,basePath: \"/'${MEEP_SANDBOX_NAME}'/,' $file; echo "Replacing {apiRoot} with ${MEEP_HOST_URL}/${MEEP_SANDBOX_NAME} to url in: $file" sed -i 's/{apiRoot}/'${MEEP_SANDBOX_NAME}'/g' $file; done # Copy user-swagger & adapt basepath to sandbox Loading @@ -18,6 +20,8 @@ if [[ ! -z "${USER_SWAGGER}" ]]; then for file in ${USER_SWAGGER_SANDBOX}/*-api.yaml; do echo "Prepending [${MEEP_SANDBOX_NAME}] to basepath in: $file" sed -i 's,basePath: \"/\?,basePath: \"/'${MEEP_SANDBOX_NAME}'/,' $file; echo "Replacing {apiRoot} to url in: $file" sed -i 's/{apiRoot}/'${MEEP_SANDBOX_NAME}'/g' $file; done fi Loading Loading
go-apps/meep-loc-serv/api/swagger.yaml +2083 −3839 File changed.Preview size limit exceeded, changes collapsed. Show changes
go-apps/meep-loc-serv/server/loc-serv.go +131 −25 Original line number Diff line number Diff line Loading @@ -897,16 +897,21 @@ func userTrackingSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2013 userTrackingSub := new(UserTrackingSubscription) response.UserTrackingSubscription = userTrackingSub var body Body6 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&userTrackingSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } userTrackingSub := body.UserTrackingSubscription if userTrackingSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextUserSubscriptionIdAvailable nextUserSubscriptionIdAvailable++ Loading @@ -917,6 +922,8 @@ func userTrackingSubPost(w http.ResponseWriter, r *http.Request) { _ = rc.JSONSetEntry(baseKey+typeUserSubscription+":"+subsIdStr, ".", convertUserSubscriptionToJson(userTrackingSub)) response.UserTrackingSubscription = userTrackingSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -932,25 +939,47 @@ func userTrackingSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20014 userTrackingSub := new(UserTrackingSubscription) response.UserTrackingSubscription = userTrackingSub var body Body6 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&userTrackingSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } userTrackingSub := body.UserTrackingSubscription if userTrackingSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(userTrackingSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] userTrackingSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/userTracking/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if userSubscriptionMap[subsId] == "" { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeUserSubscription+":"+subsIdStr, ".", convertUserSubscriptionToJson(userTrackingSub)) deregisterUser(subsIdStr) registerUser(userTrackingSub.Address, userTrackingSub.UserEventCriteria, subsIdStr) response.UserTrackingSubscription = userTrackingSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1049,16 +1078,21 @@ func zonalTrafficSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2014 zonalTrafficSub := new(ZonalTrafficSubscription) response.ZonalTrafficSubscription = zonalTrafficSub var body Body8 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zonalTrafficSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zonalTrafficSub := body.ZonalTrafficSubscription if zonalTrafficSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextZonalSubscriptionIdAvailable nextZonalSubscriptionIdAvailable++ Loading @@ -1081,6 +1115,8 @@ func zonalTrafficSubPost(w http.ResponseWriter, r *http.Request) { registerZonal(zonalTrafficSub.ZoneId, zonalTrafficSub.UserEventCriteria, subsIdStr) response.ZonalTrafficSubscription = zonalTrafficSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -1096,25 +1132,47 @@ func zonalTrafficSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20017 zonalTrafficSub := new(ZonalTrafficSubscription) response.ZonalTrafficSubscription = zonalTrafficSub var body Body8 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zonalTrafficSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zonalTrafficSub := body.ZonalTrafficSubscription if zonalTrafficSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(zonalTrafficSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] zonalTrafficSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/zonalTraffic/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if zonalSubscriptionMap[subsId] == "" { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeZonalSubscription+":"+subsIdStr, ".", convertZonalSubscriptionToJson(zonalTrafficSub)) deregisterZonal(subsIdStr) registerZonal(zonalTrafficSub.ZoneId, zonalTrafficSub.UserEventCriteria, subsIdStr) response.ZonalTrafficSubscription = zonalTrafficSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1214,16 +1272,21 @@ func zoneStatusSubPost(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") var response InlineResponse2015 zoneStatusSub := new(ZoneStatusSubscription) response.ZoneStatusSubscription = zoneStatusSub var body Body10 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zoneStatusSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zoneStatusSub := body.ZoneStatusSubscription if zoneStatusSub == nil { w.WriteHeader(http.StatusBadRequest) return } newSubsId := nextZoneStatusSubscriptionIdAvailable nextZoneStatusSubscriptionIdAvailable++ Loading @@ -1236,6 +1299,8 @@ func zoneStatusSubPost(w http.ResponseWriter, r *http.Request) { registerZoneStatus(zoneStatusSub.ZoneId, zoneStatusSub.NumberOfUsersZoneThreshold, zoneStatusSub.NumberOfUsersAPThreshold, zoneStatusSub.OperationStatus, subsIdStr) response.ZoneStatusSubscription = zoneStatusSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading @@ -1251,26 +1316,48 @@ func zoneStatusSubPut(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) var response InlineResponse20020 zoneStatusSub := new(ZoneStatusSubscription) response.ZoneStatusSubscription = zoneStatusSub var body Body10 decoder := json.NewDecoder(r.Body) err := decoder.Decode(&zoneStatusSub) err := decoder.Decode(&body) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } zoneStatusSub := body.ZoneStatusSubscription if zoneStatusSub == nil { w.WriteHeader(http.StatusBadRequest) return } subsIdParamStr := vars["subscriptionId"] selfUrl := strings.Split(zoneStatusSub.ResourceURL, "/") subsIdStr := selfUrl[len(selfUrl)-1] if subsIdStr != subsIdParamStr { http.Error(w, "Body content not matching parameter", http.StatusInternalServerError) return } subsIdStr := vars["subscriptionId"] zoneStatusSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/zoneStatus/" + subsIdStr subsId, _ := strconv.Atoi(subsIdStr) if zoneStatusSubscriptionMap[subsId] == nil { w.WriteHeader(http.StatusNotFound) return } _ = rc.JSONSetEntry(baseKey+typeZoneStatusSubscription+":"+subsIdStr, ".", convertZoneStatusSubscriptionToJson(zoneStatusSub)) deregisterZoneStatus(subsIdStr) registerZoneStatus(zoneStatusSub.ZoneId, zoneStatusSub.NumberOfUsersZoneThreshold, zoneStatusSub.NumberOfUsersAPThreshold, zoneStatusSub.OperationStatus, subsIdStr) response.ZoneStatusSubscription = zoneStatusSub jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) Loading Loading @@ -1356,8 +1443,17 @@ func updateUserInfo(address string, zoneId string, accessPointId string, longitu userInfo.LocationInfo.Accuracy = 1 } //we only support shape != 7 in locationInfo userInfo.LocationInfo.Longitude[0] = *longitude userInfo.LocationInfo.Latitude[0] = *latitude userInfo.LocationInfo.Shape = "2" userInfo.LocationInfo.Longitude = nil userInfo.LocationInfo.Longitude = append(userInfo.LocationInfo.Longitude, *longitude) userInfo.LocationInfo.Latitude = nil userInfo.LocationInfo.Latitude = append(userInfo.LocationInfo.Latitude, *latitude) seconds := time.Now().Unix() var timeStamp TimeStamp timeStamp.Seconds = int32(seconds) userInfo.LocationInfo.Timestamp = &timeStamp } // Update User info in DB & Send notifications Loading Loading @@ -1426,9 +1522,19 @@ func updateAccessPointInfo(zoneId string, apId string, conTypeStr string, opStat apInfo.LocationInfo = new(LocationInfo) apInfo.LocationInfo.Accuracy = 1 } //we only support shape != 7 in locationInfo apInfo.LocationInfo.Longitude[0] = *longitude apInfo.LocationInfo.Latitude[0] = *latitude apInfo.LocationInfo.Shape = "2" apInfo.LocationInfo.Longitude = nil apInfo.LocationInfo.Longitude = append(apInfo.LocationInfo.Longitude, *longitude) apInfo.LocationInfo.Latitude = nil apInfo.LocationInfo.Latitude = append(apInfo.LocationInfo.Latitude, *latitude) seconds := time.Now().Unix() var timeStamp TimeStamp timeStamp.Seconds = int32(seconds) apInfo.LocationInfo.Timestamp = &timeStamp } // Update AP info in DB & Send notifications Loading
go-apps/meep-loc-serv/server/loc-serv_test.go +21 −12 Original line number Diff line number Diff line Loading @@ -615,7 +615,8 @@ func testZonalSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -673,7 +674,8 @@ func testZonalSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -703,7 +705,7 @@ func testZonalSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/zonalTraffic", bytes.NewBuffer(body), vars, nil, http.StatusOK, ZonalTrafficSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/zonalTraffic", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, ZonalTrafficSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -949,7 +951,8 @@ func testUserSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1006,7 +1009,8 @@ func testUserSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1036,7 +1040,7 @@ func testUserSubscriptionPut(t *testing.T, subscriptionId string, expectSuccess } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/userTracking", bytes.NewBuffer(body), vars, nil, http.StatusOK, UserTrackingSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/userTracking", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, UserTrackingSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -1284,7 +1288,8 @@ func testZoneStatusSubscriptionPost(t *testing.T) string { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZoneStatusSubscription) expectedBody := Body10{&expectedZoneStatusSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1342,7 +1347,8 @@ func testZoneStatusSubscriptionPut(t *testing.T, subscriptionId string, expectSu /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZoneStatusSubscription) expectedBody := Body10{&expectedZoneStatusSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1372,7 +1378,7 @@ func testZoneStatusSubscriptionPut(t *testing.T, subscriptionId string, expectSu } return string(expectedResponseStr) } else { _, err = sendRequest(http.MethodPost, "/subscriptions/zoneStatus", bytes.NewBuffer(body), vars, nil, http.StatusOK, ZoneStatusSubPUT) _, err = sendRequest(http.MethodPost, "/subscriptions/zoneStatus", bytes.NewBuffer(body), vars, nil, http.StatusNotFound, ZoneStatusSubPUT) if err != nil { t.Fatalf("Failed to get expected response") } Loading Loading @@ -1792,7 +1798,8 @@ func TestUserSubscriptionNotification(t *testing.T) { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedUserTrackingSubscription) expectedBody := Body6{&expectedUserTrackingSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } Loading Loading @@ -1902,12 +1909,14 @@ func TestZoneSubscriptionNotification(t *testing.T) { /****************************** * request body section ******************************/ body, err := json.Marshal(expectedZonalTrafficSubscription) expectedBody := Body8{&expectedZonalTrafficSubscription} body, err := json.Marshal(expectedBody) if err != nil { t.Fatalf(err.Error()) } body2, err := json.Marshal(expectedZonalTrafficSubscription2) expectedBody2 := Body8{&expectedZonalTrafficSubscription2} body2, err := json.Marshal(expectedBody2) if err != nil { t.Fatalf(err.Error()) } Loading
go-apps/meep-sandbox-ctrl/entrypoint.sh +4 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ echo "USER_SWAGGER_SANDBOX: ${USER_SWAGGER_SANDBOX}" for file in /swagger/*-api.yaml; do echo "Prepending [${MEEP_SANDBOX_NAME}] to basepath in: $file" sed -i 's,basePath: \"/\?,basePath: \"/'${MEEP_SANDBOX_NAME}'/,' $file; echo "Replacing {apiRoot} with ${MEEP_HOST_URL}/${MEEP_SANDBOX_NAME} to url in: $file" sed -i 's/{apiRoot}/'${MEEP_SANDBOX_NAME}'/g' $file; done # Copy user-swagger & adapt basepath to sandbox Loading @@ -18,6 +20,8 @@ if [[ ! -z "${USER_SWAGGER}" ]]; then for file in ${USER_SWAGGER_SANDBOX}/*-api.yaml; do echo "Prepending [${MEEP_SANDBOX_NAME}] to basepath in: $file" sed -i 's,basePath: \"/\?,basePath: \"/'${MEEP_SANDBOX_NAME}'/,' $file; echo "Replacing {apiRoot} to url in: $file" sed -i 's/{apiRoot}/'${MEEP_SANDBOX_NAME}'/g' $file; done fi Loading