// Pipe - A small and beautiful blogging platform written in golang. // Copyright (C) 2017-2018, b3log.org // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package controller import ( "fmt" "net/http" "strconv" "github.com/b3log/pipe/model" "github.com/b3log/pipe/service" "github.com/b3log/pipe/util" "github.com/gin-gonic/gin" ) // addSymCommentAction adds a comment come from Sym. Sees https://hacpai.com/article/1457158841475 for more details. func addSymCommentAction(c *gin.Context) { result := util.NewResult() defer c.JSON(http.StatusOK, result) arg := map[string]interface{}{} if err := c.BindJSON(&arg); nil != err { result.Code = -1 result.Msg = "parses add comment request failed" return } requestCmt := arg["comment"].(map[string]interface{}) articleId, err := strconv.ParseUint(requestCmt["articleId"].(string), 10, 64) if nil != err { result.Code = -1 result.Msg = "parses add comment request failed" return } blogID := getBlogID(c) comment := &model.Comment{ BlogID: blogID, ArticleID: articleId, AuthorID: model.SyncCommentAuthorID, Content: requestCmt["content"].(string), IP: requestCmt["ip"].(string), UserAgent: requestCmt["ua"].(string), AuthorName: requestCmt["authorName"].(string), AuthorURL: requestCmt["authorURL"].(string), AuthorAvatarURL: requestCmt["authorAvatarURL"].(string), } if err := service.Comment.AddComment(comment); nil != err { result.Code = -1 result.Msg = err.Error() } if err := service.Comment.UpdatePushedAt(comment); nil != err { result.Code = -1 result.Msg = err.Error() } } // addSymArticleAction adds an article come from Sym. Sees https://hacpai.com/article/1457158841475 for more details. func addSymArticleAction(c *gin.Context) { result := util.NewResult() defer c.JSON(http.StatusOK, result) arg := map[string]interface{}{} if err := c.BindJSON(&arg); nil != err { result.Code = -1 result.Msg = "parses add article request failed" return } requestArticle := arg["article"].(map[string]interface{}) articleId, err := strconv.ParseUint(requestArticle["oId"].(string), 10, 64) if nil != err { result.Code = -1 result.Msg = "parses add article request failed" return } blogID := getBlogID(c) b3Key := requestArticle["userB3Key"].(string) blogAdmin := service.User.GetBlogAdmin(blogID) if b3Key != blogAdmin.B3Key { result.Code = -1 result.Msg = "B3 key not match, ignored add article" return } article := &model.Article{ BlogID: blogID, AuthorID: blogAdmin.ID, Title: requestArticle["articleTitle"].(string), Tags: requestArticle["articleTags"].(string), Content: requestArticle["articleContent"].(string), } article.ID = articleId if err := service.Article.AddArticle(article); nil != err { result.Code = -1 result.Msg = err.Error() } if err := service.Article.UpdatePushedAt(article); nil != err { result.Code = -1 result.Msg = err.Error() } } // updateSymArticleAction updates an article come from Sym. Sees https://hacpai.com/article/1457158841475 for more details. func updateSymArticleAction(c *gin.Context) { result := util.NewResult() defer c.JSON(http.StatusOK, result) arg := map[string]interface{}{} if err := c.BindJSON(&arg); nil != err { result.Code = -1 result.Msg = "parses update article request failed" return } requestArticle := arg["article"].(map[string]interface{}) articleId, err := strconv.ParseUint(requestArticle["oId"].(string), 10, 64) if nil != err { result.Code = -1 result.Msg = "parses update article request failed" return } blogID := getBlogID(c) b3Key := requestArticle["userB3Key"].(string) blogAdmin := service.User.GetBlogAdmin(blogID) if b3Key != blogAdmin.B3Key { result.Code = -1 result.Msg = "B3 key not match, ignored add article" return } article := service.Article.ConsoleGetArticle(articleId) if nil == article { result.Code = -1 result.Msg = "not found article [ID=" + fmt.Sprintf("%d", articleId) + "] to update" return } article.Title = requestArticle["articleTitle"].(string) article.Tags = requestArticle["articleTags"].(string) article.Content = requestArticle["articleContent"].(string) if err := service.Article.UpdateArticle(article); nil != err { result.Code = -1 result.Msg = err.Error() } if err := service.Article.UpdatePushedAt(article); nil != err { result.Code = -1 result.Msg = err.Error() } }