func TestAddEditDeleteUserPostComment(t *testing.T) { postList := *me.Postlist(nerdz.PostlistOptions{N: 1}) existingPost := postList[0].(*nerdz.UserPost) var comment nerdz.UserPostComment comment.Message = "Nice <html>" comment.Hpid = existingPost.Hpid if err := me.Add(&comment); err != nil { t.Fatalf("Add failed: %s", err) } comment.Message = "LOL EDIT" // Should fail, because of flood limits if err := me.Edit(&comment); err == nil { t.Fatalf("Edit should fail, but succeded") } // Wait 5 second to avoid flood limit (db side) time.Sleep(6000 * time.Millisecond) if err := me.Edit(&comment); err != nil { t.Fatalf("Edit comment failed with error: %s", err) } if err := me.Delete(&comment); err != nil { t.Fatalf("Delete comment with hcid %v shoud work, but got error: %v", comment.Hcid, err) } }
func TestAddEditDeleteUserPostComment(t *testing.T) { existingPost := me.Postlist(&nerdz.PostlistOptions{N: 1}).([]nerdz.UserPost)[0] var comment nerdz.UserPostComment comment.Message = "Nice <html>" comment.Hpid = existingPost.Hpid if err := me.Add(&comment); err != nil { t.Errorf("Add failed: %s", err) } comment.Message = "LOL EDIT" // Wait 5 second to avoid flood limit (db side) time.Sleep(5000 * time.Millisecond) if err := me.Edit(&comment); err != nil { t.Errorf("Edit comment failed with error: %s", err) } if err := me.Delete(&comment); err != nil { t.Errorf("Delete comment with hcid %v shoud work, but got error: %v", comment.Hcid, err) } }
// NewPostComment handles the request and creates a new post func NewPostComment() echo.HandlerFunc { // swagger:route POST /users/{id}/posts/{pid}/comments user post comment NewUserPostComment // // Creates a new post on the specified user board // // Consumes: // - application/json // // Produces: // - application/json // // Security: // oauth: profile_comments:write // // Responses: // default: apiResponse return func(c echo.Context) error { if !rest.IsGranted("profile_comments:write", c) { return rest.InvalidScopeResponse("profile_comments:write", c) } // Read a rest.NewMessage from the body request. message := rest.NewMessage{} if err := c.Bind(&message); err != nil { errstr := err.Error() c.JSON(http.StatusBadRequest, &rest.Response{ Data: nil, HumanMessage: errstr, Message: errstr, Status: http.StatusBadRequest, Success: false, }) return errors.New(errstr) } // Create a nerdz.UserPostComment from the message // and current context. comment := nerdz.UserPostComment{} comment.Message = message.Message comment.Lang = message.Lang comment.To = c.Get("other").(*nerdz.User).ID() comment.Hpid = c.Get("post").(*nerdz.UserPost).ID() // Send it me := c.Get("me").(*nerdz.User) if err := me.Add(&comment); err != nil { errstr := err.Error() c.JSON(http.StatusBadRequest, &rest.Response{ Data: nil, HumanMessage: errstr, Message: errstr, Status: http.StatusBadRequest, Success: false, }) return errors.New(errstr) } // Extract the TO from the new post and return // selected fields. return rest.SelectFields(comment.GetTO(me), c) } }