Commit 9b053de3 authored by Ikram Haq's avatar Ikram Haq
Browse files

Set Location header with newly created resource URI in relevant function.

parent 734637a3
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -883,7 +883,6 @@ func deregisterUser(subsIdStr string) {
	userSubscriptionEnteringMap[subsId] = ""
	userSubscriptionLeavingMap[subsId] = ""
	userSubscriptionTransferringMap[subsId] = ""
	userSubscriptionMapLink[subsId] = nil
}

// registerUser1 registers user events and their corresponding subscription details.
@@ -2840,9 +2839,11 @@ func distanceSubPost(w http.ResponseWriter, r *http.Request) {
	newSubsId := nextDistanceSubscriptionIdAvailable
	nextDistanceSubscriptionIdAvailable++
	subsIdStr := strconv.Itoa(newSubsId)
	location := hostUrl.String() + basePath + "subscriptions/distance/" + subsIdStr
	w.Header().Set("Location", location)
	distanceSub.Links = &Links{
		Self: &LinkType{
			Href: hostUrl.String() + basePath + "subscriptions/distance/" + subsIdStr,
			Href: location,
		},
	}
	_ = rc.JSONSetEntry(baseKey+typeDistanceSubscription+":"+subsIdStr, ".", convertDistanceSubscriptionToJson1(distanceSub))
@@ -3276,10 +3277,11 @@ func areaSubPOST(w http.ResponseWriter, r *http.Request) {
	newSubsId := nextAreaCircleSubscriptionIdAvailable
	nextAreaCircleSubscriptionIdAvailable++
	subsIdStr := strconv.Itoa(newSubsId)

	location := hostUrl.String() + basePath + "subscriptions/area/" + subsIdStr
	w.Header().Set("Location", location)
	areaCircleSub.Links = &Links{
		Self: &LinkType{
			Href: hostUrl.String() + basePath + "subscriptions/area/" + subsIdStr,
			Href: location,
		},
	}

@@ -3842,13 +3844,15 @@ func handleUserLocationEventSubscription(w http.ResponseWriter, requestBody map[
		}
		nextUserSubscriptionIdAvailable = newSubsId + 2 // Increment by 2 to ensure the next even number
		subsIdStr := strconv.Itoa(newSubsId)

		registerUser1(userSubBody.Address, userSubBody.LocationEventCriteria, subsIdStr, &userSubBody)
		location := hostUrl.String() + basePath + "subscriptions/users/" + subsIdStr
		w.Header().Set("Location", location)
		userSubBody.Links = &Links{} // Initialize Links outside the loop

		userSubBody.Links.Self = &LinkType{
			Href: hostUrl.String() + basePath + "subscriptions/users/" + subsIdStr,
			Href: location,
		}
		registerUser1(userSubBody.Address, userSubBody.LocationEventCriteria, subsIdStr, &userSubBody)

		_ = rc.JSONSetEntry(baseKey+typeUserSubscription+":"+subsIdStr, ".", convertUserSubscriptionToJson1(&userSubBody))

		// Prepare response
@@ -3927,11 +3931,12 @@ func handleUserLocationPeriodicSubscription(w http.ResponseWriter, requestBody m
		newSubsId := nextPeriodicSubscriptionIdAvailable
		nextPeriodicSubscriptionIdAvailable += 2
		subsIdStr := strconv.Itoa(newSubsId)
		// periodicSub.ResourceURL = hostUrl.String() + basePath + "subscriptions/user/" + subsIdStr
		location := hostUrl.String() + basePath + "subscriptions/users/" + subsIdStr
		w.Header().Set("Location", location)
		periodicSub.Links = &Links{} // Initialize Links outside the loop

		periodicSub.Links.Self = &LinkType{
			Href: hostUrl.String() + basePath + "subscriptions/users/" + subsIdStr,
			Href: location,
		}
		_ = rc.JSONSetEntry(baseKey+typePeriodicSubscription+":"+subsIdStr, ".", convertPeriodicSubscriptionToJson1(&periodicSub))
		registerPeriodic1(&periodicSub, subsIdStr)
@@ -4873,9 +4878,11 @@ func handleZoneStatusSubscription(w http.ResponseWriter, requestBody map[string]
		}
		nextZoneStatusSubscriptionIdAvailable = newSubsId + 2 // Increment by 2 to ensure the next even number
		subsIdStr := strconv.Itoa(newSubsId)
		location := hostUrl.String() + basePath + "subscriptions/zones/" + subsIdStr
		w.Header().Set("Location", location)
		zoneStatusSub.Links = &Links{
			Self: &LinkType{
				Href: hostUrl.String() + basePath + "subscriptions/zones/" + subsIdStr,
				Href: location,
			},
		}
		_ = rc.JSONSetEntry(baseKey+typeZoneStatusSubscription+":"+subsIdStr, ".", convertZoneStatusSubscriptionToJson(&zoneStatusSub))
@@ -4946,9 +4953,11 @@ func handleZoneLocationEventSubscription(w http.ResponseWriter, requestBody map[
		newSubsId := nextZonalSubscriptionIdAvailable
		nextZonalSubscriptionIdAvailable += 2
		subsIdStr := strconv.Itoa(newSubsId)
		location := hostUrl.String() + basePath + "subscriptions/zones/" + subsIdStr
		w.Header().Set("Location", location)
		zonalSub.Links = &Links{
			Self: &LinkType{
				Href: hostUrl.String() + basePath + "subscriptions/zones/" + subsIdStr,
				Href: location,
			},
		}
		_ = rc.JSONSetEntry(baseKey+typeZonalSubscription+":"+subsIdStr, ".", convertZonalSubscriptionToJson1(&zonalSub))