119 lines
4.2 KiB
Ruby
119 lines
4.2 KiB
Ruby
|
#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
|
||
|
end
|
||
|
get ':id' do
|
||
|
type = params[:type]
|
||
|
result = 1
|
||
|
current_user = User.find 8686
|
||
|
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_attributes(:updated_at => Time.now)
|
||
|
result = 2
|
||
|
else
|
||
|
result = 3
|
||
|
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
|
||
|
else
|
||
|
result = 3
|
||
|
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
|
||
|
else
|
||
|
result = 3
|
||
|
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
|
||
|
else
|
||
|
result = 3
|
||
|
end
|
||
|
when 'Issue'
|
||
|
issue = Issue.find params[:id]
|
||
|
jour = Journal.new
|
||
|
jour.user_id = current_user.id
|
||
|
jour.notes = params[:content]
|
||
|
jour.journalized_id = params[:id]
|
||
|
jour.journalized_type = "Issue"
|
||
|
if jour.save
|
||
|
result = 2
|
||
|
else
|
||
|
result = 3
|
||
|
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}"
|
||
|
blog.children << blogComment
|
||
|
if blog.save
|
||
|
result = 2
|
||
|
else
|
||
|
result = 3
|
||
|
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 = 4
|
||
|
end
|
||
|
present :data, result
|
||
|
present :status, 0
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|