[MM-17069] Api endpoint to unread a channel (#11794)
* [MM-17069] endpoint to unread a channel from post * [MM-17069] update mock * [MM-17069] first passing test * [MM-17069] fix SQL typo * [MM-17069] fix msgCount * add tests * [MM-17069] Fix tests * [MM-16069] Remove trash, add comments * [MM-16069] Add message to errors * [MM-17069] fix go fmt * [MM-17069] return an UnreadChannel response * [MM-17069] added unauthorized test * [MM-17069] fix operator * [MM-17069] refactor tests * [MM-16069] back to green tests * [MM-17069] change url to include user * [MM-17069] Fixing code review comments * [MM-17069] One shouldn't fix manually what a machine can fix better * [MM-17069] change response type, update tests * [MM-17069] fix permission error * [MM-17069] Add tests for edit_other_users permission * [MM-17069] no magic numbers
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
bd152c6534
Коммит
6b0f4f1aee
23
api4/post.go
23
api4/post.go
@@ -28,6 +28,7 @@ func (api *API) InitPost() {
|
||||
api.BaseRoutes.Team.Handle("/posts/search", api.ApiSessionRequired(searchPosts)).Methods("POST")
|
||||
api.BaseRoutes.Post.Handle("", api.ApiSessionRequired(updatePost)).Methods("PUT")
|
||||
api.BaseRoutes.Post.Handle("/patch", api.ApiSessionRequired(patchPost)).Methods("PUT")
|
||||
api.BaseRoutes.PostForUser.Handle("/set_unread", api.ApiSessionRequired(setPostUnread)).Methods("POST")
|
||||
api.BaseRoutes.Post.Handle("/pin", api.ApiSessionRequired(pinPost)).Methods("POST")
|
||||
api.BaseRoutes.Post.Handle("/unpin", api.ApiSessionRequired(unpinPost)).Methods("POST")
|
||||
}
|
||||
@@ -576,6 +577,28 @@ func patchPost(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
w.Write([]byte(patchedPost.ToJson()))
|
||||
}
|
||||
|
||||
func setPostUnread(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
c.RequirePostId().RequireUserId()
|
||||
if c.Err != nil {
|
||||
return
|
||||
}
|
||||
if c.App.Session.UserId != c.Params.UserId && !c.App.SessionHasPermissionToUser(c.App.Session, c.Params.UserId) {
|
||||
c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS)
|
||||
return
|
||||
}
|
||||
if !c.App.SessionHasPermissionToChannelByPost(c.App.Session, c.Params.PostId, model.PERMISSION_READ_CHANNEL) {
|
||||
c.SetPermissionError(model.PERMISSION_READ_CHANNEL)
|
||||
return
|
||||
}
|
||||
|
||||
state, err := c.App.MarkChannelAsUnreadFromPost(c.Params.PostId, c.Params.UserId)
|
||||
if err != nil {
|
||||
c.Err = err
|
||||
return
|
||||
}
|
||||
w.Write([]byte(state.ToJson()))
|
||||
}
|
||||
|
||||
func saveIsPinnedPost(c *Context, w http.ResponseWriter, r *http.Request, isPinned bool) {
|
||||
c.RequirePostId()
|
||||
if c.Err != nil {
|
||||
|
||||
Ссылка в новой задаче
Block a user