Loading go-apps/meep-vis/server/convert.go +0 −29 Original line number Diff line number Diff line Loading @@ -57,32 +57,3 @@ func convertV2xMsgPublicationToJson(v2xMsgPublication *V2xMsgPublication) string } return string(jsonInfo) } func convertSubscriptionLinkListToJson(subscriptionLinkList *SubscriptionLinkList) string { jsonInfo, err := json.Marshal(*subscriptionLinkList) if err != nil { log.Error(err.Error()) return "" } return string(jsonInfo) } func convertJsonToUuUniSubscription(jsonInfo string) *ProvChgUuUniSubscription { var obj ProvChgUuUniSubscription err := json.Unmarshal([]byte(jsonInfo), &obj) if err != nil { log.Error(err.Error()) return nil } return &obj } func convertJsonToV2xMsgSubscription(jsonInfo string) *V2xMsgSubscription { var obj V2xMsgSubscription err := json.Unmarshal([]byte(jsonInfo), &obj) if err != nil { log.Error(err.Error()) return nil } return &obj } go-apps/meep-vis/server/vis.go +41 −70 Original line number Diff line number Diff line Loading @@ -219,33 +219,6 @@ func sendTerminationConfirmation(appInstanceId string) error { return nil } func validateQueryParams(params url.Values, validParamList []string) bool { for param := range params { found := false for _, validParam := range validParamList { if param == validParam { found = true break } } if !found { log.Error("Invalid query param: ", param) return false } } return true } func validateQueryParamValue(val string, validValues []string) bool { for _, validVal := range validValues { if val == validVal { return true } } log.Error("Invalid query param value: ", val) return false } func subscribeAppTermination(appInstanceId string) error { var sub asc.AppTerminationNotificationSubscription sub.SubscriptionType = "AppTerminationNotificationSubscription" Loading Loading @@ -1039,30 +1012,17 @@ func createSubscriptionLinkList(subType string) *SubscriptionLinkList { mutex.Lock() defer mutex.Unlock() //loop through v2x_msg map //loop through cell_change map if subType == "" || subType == "v2x_msg" { for _, v2xMsgSubscription := range v2xMsgSubscriptionMap { if v2xMsgSubscription != nil { for _, v2xSubscription := range v2xMsgSubscriptionMap { if v2xSubscription != nil { var subscription SubscriptionLinkListLinksSubscriptions subscription.Href = v2xMsgSubscription.Links.Self.Href subscription.Href = v2xSubscription.Links.Self.Href subscription.SubscriptionType = V2X_MSG subscriptionLinkList.Links.Subscriptions = append(subscriptionLinkList.Links.Subscriptions, subscription) } } } //loop through prov_chg_uu_uni map if subType == "" || subType == "prov_chg_uu_uni" { for _, provChgUuUniSubscription := range provChgUuUniSubscriptionMap { if provChgUuUniSubscription != nil { var subscription SubscriptionLinkListLinksSubscriptions subscription.Href = provChgUuUniSubscription.Links.Self.Href subscription.SubscriptionType = PROV_CHG_UU_UNI subscriptionLinkList.Links.Subscriptions = append(subscriptionLinkList.Links.Subscriptions, subscription) } } } //no other maps to go through return subscriptionLinkList Loading @@ -1070,21 +1030,45 @@ func createSubscriptionLinkList(subType string) *SubscriptionLinkList { func subGET(w http.ResponseWriter, r *http.Request) { log.Info("subGet") w.Header().Set("Content-Type", "application/json; charset=UTF-8") u, _ := url.Parse(r.URL.String()) log.Info("url: ", u.RequestURI()) q := u.Query() validQueryParams := []string{"subscriptionType"} if !validateQueryParams(q, validQueryParams) { subType := q.Get("subscription_type") validQueryParams := []string{"subscription_type"} validQueryParamValues := []string{"prov_chg_uu_uni", "prov_chg_uu_mbms", "prov_chg_pc5", "v2x_msg"} //look for all query parameters to reject if any invalid ones found := false for queryParam, values := range q { found = false for _, validQueryParam := range validQueryParams { if queryParam == validQueryParam { found = true break } } if !found { log.Error("Query param not valid: ", queryParam) w.WriteHeader(http.StatusBadRequest) return } // Get & validate query param values subType := q.Get("subscriptionType") if !validateQueryParamValue(subType, []string{"", "prov_chg_uu_uni", "prov_chg_uu_mbms", "prov_chg_pc5", "v2x_msg"}) { for _, validQueryParamValue := range validQueryParamValues { found = false for _, value := range values { if value == validQueryParamValue { found = true break } } if found { break } } if !found { log.Error("Query param not valid: ", queryParam) w.WriteHeader(http.StatusBadRequest) return } Loading @@ -1093,20 +1077,7 @@ func subGET(w http.ResponseWriter, r *http.Request) { response := createSubscriptionLinkList(subType) // Find subscriptions by type subscriptionType := "" if subType != "" { if subType == "prov_chg_uu_uni" { subscriptionType = PROV_CHG_UU_UNI } else if subType == "prov_chg_uu_mbms" { subscriptionType = PROV_CHG_UU_MBMS } else if subType == "prov_chg_pc5" { subscriptionType = PROV_CHG_PC5 } else if subType == "v2x_msg" { subscriptionType = V2X_MSG } } subList, err := subMgr.GetFilteredSubscriptions("", subscriptionType) jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusInternalServerError) Loading Loading
go-apps/meep-vis/server/convert.go +0 −29 Original line number Diff line number Diff line Loading @@ -57,32 +57,3 @@ func convertV2xMsgPublicationToJson(v2xMsgPublication *V2xMsgPublication) string } return string(jsonInfo) } func convertSubscriptionLinkListToJson(subscriptionLinkList *SubscriptionLinkList) string { jsonInfo, err := json.Marshal(*subscriptionLinkList) if err != nil { log.Error(err.Error()) return "" } return string(jsonInfo) } func convertJsonToUuUniSubscription(jsonInfo string) *ProvChgUuUniSubscription { var obj ProvChgUuUniSubscription err := json.Unmarshal([]byte(jsonInfo), &obj) if err != nil { log.Error(err.Error()) return nil } return &obj } func convertJsonToV2xMsgSubscription(jsonInfo string) *V2xMsgSubscription { var obj V2xMsgSubscription err := json.Unmarshal([]byte(jsonInfo), &obj) if err != nil { log.Error(err.Error()) return nil } return &obj }
go-apps/meep-vis/server/vis.go +41 −70 Original line number Diff line number Diff line Loading @@ -219,33 +219,6 @@ func sendTerminationConfirmation(appInstanceId string) error { return nil } func validateQueryParams(params url.Values, validParamList []string) bool { for param := range params { found := false for _, validParam := range validParamList { if param == validParam { found = true break } } if !found { log.Error("Invalid query param: ", param) return false } } return true } func validateQueryParamValue(val string, validValues []string) bool { for _, validVal := range validValues { if val == validVal { return true } } log.Error("Invalid query param value: ", val) return false } func subscribeAppTermination(appInstanceId string) error { var sub asc.AppTerminationNotificationSubscription sub.SubscriptionType = "AppTerminationNotificationSubscription" Loading Loading @@ -1039,30 +1012,17 @@ func createSubscriptionLinkList(subType string) *SubscriptionLinkList { mutex.Lock() defer mutex.Unlock() //loop through v2x_msg map //loop through cell_change map if subType == "" || subType == "v2x_msg" { for _, v2xMsgSubscription := range v2xMsgSubscriptionMap { if v2xMsgSubscription != nil { for _, v2xSubscription := range v2xMsgSubscriptionMap { if v2xSubscription != nil { var subscription SubscriptionLinkListLinksSubscriptions subscription.Href = v2xMsgSubscription.Links.Self.Href subscription.Href = v2xSubscription.Links.Self.Href subscription.SubscriptionType = V2X_MSG subscriptionLinkList.Links.Subscriptions = append(subscriptionLinkList.Links.Subscriptions, subscription) } } } //loop through prov_chg_uu_uni map if subType == "" || subType == "prov_chg_uu_uni" { for _, provChgUuUniSubscription := range provChgUuUniSubscriptionMap { if provChgUuUniSubscription != nil { var subscription SubscriptionLinkListLinksSubscriptions subscription.Href = provChgUuUniSubscription.Links.Self.Href subscription.SubscriptionType = PROV_CHG_UU_UNI subscriptionLinkList.Links.Subscriptions = append(subscriptionLinkList.Links.Subscriptions, subscription) } } } //no other maps to go through return subscriptionLinkList Loading @@ -1070,21 +1030,45 @@ func createSubscriptionLinkList(subType string) *SubscriptionLinkList { func subGET(w http.ResponseWriter, r *http.Request) { log.Info("subGet") w.Header().Set("Content-Type", "application/json; charset=UTF-8") u, _ := url.Parse(r.URL.String()) log.Info("url: ", u.RequestURI()) q := u.Query() validQueryParams := []string{"subscriptionType"} if !validateQueryParams(q, validQueryParams) { subType := q.Get("subscription_type") validQueryParams := []string{"subscription_type"} validQueryParamValues := []string{"prov_chg_uu_uni", "prov_chg_uu_mbms", "prov_chg_pc5", "v2x_msg"} //look for all query parameters to reject if any invalid ones found := false for queryParam, values := range q { found = false for _, validQueryParam := range validQueryParams { if queryParam == validQueryParam { found = true break } } if !found { log.Error("Query param not valid: ", queryParam) w.WriteHeader(http.StatusBadRequest) return } // Get & validate query param values subType := q.Get("subscriptionType") if !validateQueryParamValue(subType, []string{"", "prov_chg_uu_uni", "prov_chg_uu_mbms", "prov_chg_pc5", "v2x_msg"}) { for _, validQueryParamValue := range validQueryParamValues { found = false for _, value := range values { if value == validQueryParamValue { found = true break } } if found { break } } if !found { log.Error("Query param not valid: ", queryParam) w.WriteHeader(http.StatusBadRequest) return } Loading @@ -1093,20 +1077,7 @@ func subGET(w http.ResponseWriter, r *http.Request) { response := createSubscriptionLinkList(subType) // Find subscriptions by type subscriptionType := "" if subType != "" { if subType == "prov_chg_uu_uni" { subscriptionType = PROV_CHG_UU_UNI } else if subType == "prov_chg_uu_mbms" { subscriptionType = PROV_CHG_UU_MBMS } else if subType == "prov_chg_pc5" { subscriptionType = PROV_CHG_PC5 } else if subType == "v2x_msg" { subscriptionType = V2X_MSG } } subList, err := subMgr.GetFilteredSubscriptions("", subscriptionType) jsonResponse, err := json.Marshal(response) if err != nil { log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusInternalServerError) Loading