You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							119 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							119 lines
						
					
					
						
							4.2 KiB
						
					
					
				| #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
 | |
|         post ':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
 |