Add `PATCH` method for `/user/status` REST API
What does this MR do and why?
Related to !106723 (merged), #372981 (closed) and https://gitlab.slack.com/archives/C02PF508L/p1670869061302579
In the set status modal we want the Clear status after field to only be set to Never if the user explicitly sets the dropdown to Never. With the current implementation of the “Set user status” API this is not possible because if you don’t pass the clear_status_after param it defaults to nil and therefore makes that field not set. This MR adds a PATCH version of user/status API that ignores omitted params instead of setting them to nil
How to set up and validate locally
- Set a user status and clear status after
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --data "clear_status_after=1_day" --data "emoji=coffee" \
--data "message=I crave coffee" "https://gitlab.example.com/api/v4/user/status"
- Change the status but omit the
clear_status_afterparam
curl --request PATCH --header "PRIVATE-TOKEN: <your_access_token>" --data "emoji=basketball" \
--data "message=I like basketball" "https://gitlab.example.com/api/v4/user/status"
- Get status.
clear_status_aftershould still be set
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/status"
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Peter Hegman