#coding=utf-8 module Mobile module Apis class NewComment< Grape::API include ApplicationHelper include ApiHelper resources :new_comment do desc "add a new comment" params do requires :type, type: String requires :content, type: String requires :openid, type: String end post ':id' do type = params[:type] result = 1 current_user = UserWechat.find_by_openid(params[:openid]).user if params[:content]!="" && current_user case type when "HomeworkCommon" homework_common = HomeworkCommon.find(params[:id]) feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id]) if (feedback.errors.empty?) homework_common.update_column(:updated_at, Time.now) result = 2 end when "News" news = News.find(params[:id]) comment = Comment.new comment.comments = params[:content] comment.author = current_user if news.comments << comment result = 2 end when "Message" message = Message.find(params[:id]) board = Board.find(message.board_id) topic = message.root reply = Message.new reply.author = current_user reply.board = board reply.content = params[:content] reply.parent_id = params[:id] reply.subject = "RE: #{topic.subject}" if topic.children << reply result = 2 end when "JournalsForMessage" jour = JournalsForMessage.find params[:id] parent_id = params[:id] author_id = current_user.id reply_user_id = jour.user_id reply_id = params[:id] content = params[:content] options = {:user_id => author_id, :status => true, :m_parent_id => parent_id, :m_reply_id => reply_id, :reply_id => reply_user_id, :notes => content, :is_readed => false} jfm = jour.user.add_jour(nil, nil, nil, options) if jfm.errors.empty? (JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now) result = 2 end when 'Issue' issue = Issue.find params[:id] is_jour = Journal.new is_jour.user_id = current_user.id is_jour.notes = params[:content] is_jour.journalized = issue if is_jour.save result = 2 end when 'BlogComment' blog = BlogComment.find(params[:id]).root blogComment = BlogComment.new blogComment.author = current_user blogComment.blog = blog.blog blogComment.content = params[:content] blogComment.title = "RE: #{blog.title}" if blog.children << blogComment result = 2 end end if result == 2 update_course_activity_api(type,params[:id]) update_user_activity_api(type,params[:id]) update_org_activity_api(type,params[:id]) update_forge_activity_api(type,params[:id]) update_principal_activity_api(type,params[:id]) end else result = 3 end present :result, result present :status, 0 end end end end end