MCPcopy Create free account
hub / github.com/daodst/chat / DeletePushRuleByRuleID

Function DeletePushRuleByRuleID

clientapi/routing/pushrules.go:163–188  ·  view source on GitHub ↗
(ctx context.Context, scope, kind, ruleID string, device *userapi.Device, userAPI userapi.ClientUserAPI)

Source from the content-addressed store, hash-verified

161}
162
163func DeletePushRuleByRuleID(ctx context.Context, scope, kind, ruleID string, device *userapi.Device, userAPI userapi.ClientUserAPI) util.JSONResponse {
164 ruleSets, err := queryPushRules(ctx, device.UserID, userAPI)
165 if err != nil {
166 return errorResponse(ctx, err, "queryPushRules failed")
167 }
168 ruleSet := pushRuleSetByScope(ruleSets, pushrules.Scope(scope))
169 if ruleSet == nil {
170 return errorResponse(ctx, jsonerror.InvalidArgumentValue("invalid push rule set"), "pushRuleSetByScope failed")
171 }
172 rulesPtr := pushRuleSetKindPointer(ruleSet, pushrules.Kind(kind))
173 if rulesPtr == nil {
174 return errorResponse(ctx, jsonerror.InvalidArgumentValue("invalid push rules kind"), "pushRuleSetKindPointer failed")
175 }
176 i := pushRuleIndexByID(*rulesPtr, ruleID)
177 if i < 0 {
178 return errorResponse(ctx, jsonerror.NotFound("push rule ID not found"), "pushRuleIndexByID failed")
179 }
180
181 *rulesPtr = append((*rulesPtr)[:i], (*rulesPtr)[i+1:]...)
182
183 if err := putPushRules(ctx, device.UserID, ruleSets, userAPI); err != nil {
184 return errorResponse(ctx, err, "putPushRules failed")
185 }
186
187 return util.JSONResponse{Code: http.StatusOK, JSON: struct{}{}}
188}
189
190func GetPushRuleAttrByRuleID(ctx context.Context, scope, kind, ruleID, attr string, device *userapi.Device, userAPI userapi.ClientUserAPI) util.JSONResponse {
191 attrGet, err := pushRuleAttrGetter(attr)

Callers 1

SetupFunction · 0.85

Calls 6

queryPushRulesFunction · 0.85
errorResponseFunction · 0.85
pushRuleSetByScopeFunction · 0.85
pushRuleSetKindPointerFunction · 0.85
pushRuleIndexByIDFunction · 0.85
putPushRulesFunction · 0.85

Tested by

no test coverage detected