Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snssai.Sd values to lower case #13

Merged
merged 1 commit into from
Jul 27, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 42 additions & 3 deletions internal/sbi/producer/data_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -627,6 +627,8 @@ func ApplicationDataInfluenceDataInfluenceIdPatchProcedure(
return nil, http.StatusNotFound
}

request.Snssai.Sd = strings.ToLower(request.Snssai.Sd)

patchTrafficInfluData := models.TrafficInfluData{
UpPathChgNotifCorreId: request.UpPathChgNotifCorreId,
AppReloInd: request.AppReloInd,
Expand Down Expand Up @@ -703,6 +705,7 @@ func ApplicationDataInfluenceDataInfluenceIdPutProcedure(
collName, influenceId string, request *models.TrafficInfluData) (
*models.TrafficInfluData, *models.ProblemDetails, int,
) {
request.Snssai.Sd = strings.ToLower(request.Snssai.Sd)
putData := util.ToBsonM(*request)
putData["influenceId"] = influenceId
filter := bson.M{"influenceId": influenceId}
Expand Down Expand Up @@ -1418,6 +1421,7 @@ func HandlePolicyDataUesUeIdSmDataGet(request *httpwrapper.Request) *httpwrapper
if err != nil {
logger.DataRepoLog.Warnln(err)
}
sNssai.Sd = strings.ToLower(sNssai.Sd)
dnn := request.Query.Get("dnn")

response, problemDetails := PolicyDataUesUeIdSmDataGetProcedure(collName, ueId, sNssai, dnn)
Expand All @@ -1435,7 +1439,7 @@ func PolicyDataUesUeIdSmDataGetProcedure(collName string, ueId string, snssai mo
dnn string,
) (*models.SmPolicyData, *models.ProblemDetails) {
filter := bson.M{"ueId": ueId}

snssai.Sd = strings.ToLower(snssai.Sd)
if !reflect.DeepEqual(snssai, models.Snssai{}) {
filter["smPolicySnssaiData."+util.SnssaiModelsToHex(snssai)] = bson.M{"$exists": true}
}
Expand All @@ -1455,14 +1459,17 @@ func PolicyDataUesUeIdSmDataGetProcedure(collName string, ueId string, snssai mo
logger.DataRepoLog.Warnln(err)
}
tmpSmPolicySnssaiData := make(map[string]models.SmPolicySnssaiData)
for snssai, snssaiData := range smPolicyDataResp.SmPolicySnssaiData {
for sstSd, snssaiData := range smPolicyDataResp.SmPolicySnssaiData {
sstSd = strings.ToLower(sstSd)
snssaiData.Snssai.Sd = strings.ToLower(snssaiData.Snssai.Sd)

tmpSmPolicyDnnData := make(map[string]models.SmPolicyDnnData)
for escapedDnn, dnnData := range snssaiData.SmPolicyDnnData {
dnn := util.UnescapeDnn(escapedDnn)
tmpSmPolicyDnnData[dnn] = dnnData
}
snssaiData.SmPolicyDnnData = tmpSmPolicyDnnData
tmpSmPolicySnssaiData[snssai] = snssaiData
tmpSmPolicySnssaiData[sstSd] = snssaiData
}
smPolicyDataResp.SmPolicySnssaiData = tmpSmPolicySnssaiData
filter = bson.M{"ueId": ueId}
Expand All @@ -1481,6 +1488,7 @@ func PolicyDataUesUeIdSmDataGetProcedure(collName string, ueId string, snssai mo
smPolicyDataResp.UmData[element.LimitId] = element
}
}

return &smPolicyDataResp, nil
}

Expand Down Expand Up @@ -1508,6 +1516,9 @@ func PolicyDataUesUeIdSmDataPatchProcedure(collName string, ueId string,
for k, usageMonData := range UsageMonData {
limitId := k
filterTmp := bson.M{"ueId": ueId, "limitId": limitId}
for i := range usageMonData.Scopes {
usageMonData.Scopes[i].Snssai.Sd = strings.ToLower(usageMonData.Scopes[i].Snssai.Sd)
}
if err := mongoapi.RestfulAPIMergePatch(collName, filterTmp, util.ToBsonM(usageMonData)); err != nil {
successAll = false
} else {
Expand All @@ -1520,6 +1531,11 @@ func PolicyDataUesUeIdSmDataPatchProcedure(collName string, ueId string,
if err := json.Unmarshal(util.MapToByte(usageMonDataBsonM), &usageMonData); err != nil {
logger.DataRepoLog.Warnln(err)
}

for i, scope := range usageMonData.Scopes {
usageMonData.Scopes[i].Snssai.Sd = strings.ToLower(scope.Snssai.Sd)
}

PreHandlePolicyDataChangeNotification(ueId, limitId, usageMonData)
}
}
Expand All @@ -1535,6 +1551,15 @@ func PolicyDataUesUeIdSmDataPatchProcedure(collName string, ueId string,
logger.DataRepoLog.Warnln(err)
}

newSmPolicySnssaiData := make(map[string]models.SmPolicySnssaiData)
for sstSd, snssaiData := range smPolicyData.SmPolicySnssaiData {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use a new map to add, and replace smPolicyData.SmPolicySnssaiData with the new map

sstSd = strings.ToLower(sstSd)
snssaiData.Snssai.Sd = strings.ToLower(snssaiData.Snssai.Sd)
newSmPolicySnssaiData[sstSd] = snssaiData
}

smPolicyData.SmPolicySnssaiData = newSmPolicySnssaiData

collName := "policyData.ues.smData.usageMonData"
filter := bson.M{"ueId": ueId}
usageMonDataMapArray, err := mongoapi.RestfulAPIGetMany(collName, filter)
Expand All @@ -1552,6 +1577,7 @@ func PolicyDataUesUeIdSmDataPatchProcedure(collName string, ueId string,
smPolicyData.UmData[element.LimitId] = element
}
}

PreHandlePolicyDataChangeNotification(ueId, "", smPolicyData)
return nil
}
Expand Down Expand Up @@ -1608,6 +1634,9 @@ func HandlePolicyDataUesUeIdSmDataUsageMonIdPut(request *httpwrapper.Request) *h
ueId := request.Params["ueId"]
usageMonId := request.Params["usageMonId"]
usageMonData := request.Body.(models.UsageMonData)
for i, scope := range usageMonData.Scopes {
usageMonData.Scopes[i].Snssai.Sd = strings.ToLower(scope.Snssai.Sd)
}
collName := "policyData.ues.smData.usageMonData"

response := PolicyDataUesUeIdSmDataUsageMonIdPutProcedure(collName, ueId, usageMonId, usageMonData)
Expand All @@ -1618,6 +1647,10 @@ func HandlePolicyDataUesUeIdSmDataUsageMonIdPut(request *httpwrapper.Request) *h
func PolicyDataUesUeIdSmDataUsageMonIdPutProcedure(collName string, ueId string, usageMonId string,
usageMonData models.UsageMonData,
) *bson.M {
for i, scope := range usageMonData.Scopes {
usageMonData.Scopes[i].Snssai.Sd = strings.ToLower(scope.Snssai.Sd)
}

putData := util.ToBsonM(usageMonData)
putData["ueId"] = ueId
putData["usageMonId"] = usageMonId
Expand Down Expand Up @@ -2415,6 +2448,7 @@ func QueryProvisionedDataProcedure(ueId string, servingPlmnId string,
return nil, openapi.ProblemDetailsSystemFailure(err.Error())
}
for _, smData := range tmp {
smData.SingleNssai.Sd = strings.ToLower(smData.SingleNssai.Sd)
dnnConfigurations := smData.DnnConfigurations
tmpDnnConfigurations := make(map[string]models.DnnConfiguration)
for escapedDnn, dnnConf := range dnnConfigurations {
Expand Down Expand Up @@ -2751,6 +2785,8 @@ func HandleQuerySmData(request *httpwrapper.Request) *httpwrapper.Response {
logger.DataRepoLog.Warnln(err)
}

singleNssai.Sd = strings.ToLower(singleNssai.Sd)

dnn := request.Query.Get("dnn")
response := QuerySmDataProcedure(collName, ueId, servingPlmnId, singleNssai, dnn)

Expand All @@ -2760,6 +2796,7 @@ func HandleQuerySmData(request *httpwrapper.Request) *httpwrapper.Response {
func QuerySmDataProcedure(collName string, ueId string, servingPlmnId string,
singleNssai models.Snssai, dnn string,
) *[]map[string]interface{} {
singleNssai.Sd = strings.ToLower(singleNssai.Sd)
filter := bson.M{"ueId": ueId, "servingPlmnId": servingPlmnId}

if !reflect.DeepEqual(singleNssai, models.Snssai{}) {
Expand Down Expand Up @@ -2788,6 +2825,7 @@ func QuerySmDataProcedure(collName string, ueId string, servingPlmnId string,
logger.DataRepoLog.Debug("SmData Unmarshal error")
continue
}
tmpSmData.SingleNssai.Sd = strings.ToLower(tmpSmData.SingleNssai.Sd)
dnnConfigurations := tmpSmData.DnnConfigurations
tmpDnnConfigurations := make(map[string]models.DnnConfiguration)
for escapedDnn, dnnConf := range dnnConfigurations {
Expand Down Expand Up @@ -2825,6 +2863,7 @@ func HandleCreateSmfContextNon3gpp(request *httpwrapper.Request) *httpwrapper.Re
func CreateSmfContextNon3gppProcedure(SmfRegistration models.SmfRegistration,
collName string, ueId string, pduSessionIdInt int64,
) (bson.M, int) {
SmfRegistration.SingleNssai.Sd = strings.ToLower(SmfRegistration.SingleNssai.Sd)
putData := util.ToBsonM(SmfRegistration)
putData["ueId"] = ueId
putData["pduSessionId"] = int32(pduSessionIdInt)
Expand Down