回复api
This commit is contained in:
parent
825b57ba5c
commit
af2bd66847
|
@ -14,6 +14,7 @@ module Mobile
|
||||||
require_relative 'apis/journal_for_messages'
|
require_relative 'apis/journal_for_messages'
|
||||||
require_relative 'apis/messages'
|
require_relative 'apis/messages'
|
||||||
require_relative 'apis/blog_comments'
|
require_relative 'apis/blog_comments'
|
||||||
|
require_relative 'apis/new_comment'
|
||||||
|
|
||||||
class API < Grape::API
|
class API < Grape::API
|
||||||
version 'v1', using: :path
|
version 'v1', using: :path
|
||||||
|
@ -54,6 +55,7 @@ module Mobile
|
||||||
mount Apis::JournalForMessages
|
mount Apis::JournalForMessages
|
||||||
mount Apis::Messages
|
mount Apis::Messages
|
||||||
mount Apis::BlogComments
|
mount Apis::BlogComments
|
||||||
|
mount Apis::NewComment
|
||||||
|
|
||||||
#add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'})
|
#add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'})
|
||||||
#add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) if Rails.env.development?
|
#add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) if Rails.env.development?
|
||||||
|
|
|
@ -115,7 +115,7 @@ module Mobile
|
||||||
|
|
||||||
desc '通知评论列表'
|
desc '通知评论列表'
|
||||||
params do
|
params do
|
||||||
requires :token, type: String
|
#requires :token, type: String
|
||||||
requires :notice_id,type:Integer,desc:'通知id'
|
requires :notice_id,type:Integer,desc:'通知id'
|
||||||
optional :page,type:Integer,desc:'页码'
|
optional :page,type:Integer,desc:'页码'
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,7 @@ module Mobile
|
||||||
module Apis
|
module Apis
|
||||||
class Issues< Grape::API
|
class Issues< Grape::API
|
||||||
resources :issues do
|
resources :issues do
|
||||||
|
include IssuesHelper
|
||||||
|
|
||||||
desc "get special issuse"
|
desc "get special issuse"
|
||||||
get ':id' do
|
get ':id' do
|
||||||
|
|
|
@ -0,0 +1,118 @@
|
||||||
|
#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
|
|
@ -22,6 +22,8 @@ module Mobile
|
||||||
(get_user(issue.assigned_to_id)).login
|
(get_user(issue.assigned_to_id)).login
|
||||||
when :issue_status
|
when :issue_status
|
||||||
IssueStatus.find(issue.status_id).name
|
IssueStatus.find(issue.status_id).name
|
||||||
|
when :journals_count
|
||||||
|
issue.journals.count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -35,6 +37,7 @@ module Mobile
|
||||||
issue_expose :issue_priority
|
issue_expose :issue_priority
|
||||||
issue_expose :issue_assigned_to
|
issue_expose :issue_assigned_to
|
||||||
issue_expose :issue_status
|
issue_expose :issue_status
|
||||||
|
issue_expose :journals_count
|
||||||
expose :issue_journals, using: Mobile::Entities::Journal do |f, opt|
|
expose :issue_journals, using: Mobile::Entities::Journal do |f, opt|
|
||||||
if f.is_a?(::Issue)
|
if f.is_a?(::Issue)
|
||||||
f.journals
|
f.journals
|
||||||
|
|
|
@ -3,7 +3,6 @@ module Mobile
|
||||||
#普通留言
|
#普通留言
|
||||||
class Jours < Grape::Entity
|
class Jours < Grape::Entity
|
||||||
include Redmine::I18n
|
include Redmine::I18n
|
||||||
include WordsHelper
|
|
||||||
def self.jours_expose(field)
|
def self.jours_expose(field)
|
||||||
expose field do |f,opt|
|
expose field do |f,opt|
|
||||||
if f.is_a?(Hash) && f.key?(field)
|
if f.is_a?(Hash) && f.key?(field)
|
||||||
|
@ -18,6 +17,8 @@ module Mobile
|
||||||
case field
|
case field
|
||||||
when :lasted_comment
|
when :lasted_comment
|
||||||
time_from_now f.created_on
|
time_from_now f.created_on
|
||||||
|
when :reply_count
|
||||||
|
f.children.count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -33,6 +34,7 @@ module Mobile
|
||||||
jours_expose :notes
|
jours_expose :notes
|
||||||
jours_expose :m_reply_id
|
jours_expose :m_reply_id
|
||||||
jours_expose :m_parent_id
|
jours_expose :m_parent_id
|
||||||
|
jours_expose :reply_count
|
||||||
expose :course,using:Mobile::Entities::Course do |f,opt|
|
expose :course,using:Mobile::Entities::Course do |f,opt|
|
||||||
if f.is_a?(::JournalsForMessage) && f[:jour_type] == "Course"
|
if f.is_a?(::JournalsForMessage) && f[:jour_type] == "Course"
|
||||||
f.course
|
f.course
|
||||||
|
@ -43,7 +45,7 @@ module Mobile
|
||||||
end
|
end
|
||||||
expose :child_reply,using: Mobile::Entities::Jours do |f, opt|
|
expose :child_reply,using: Mobile::Entities::Jours do |f, opt|
|
||||||
if f.is_a?(::JournalsForMessage)
|
if f.is_a?(::JournalsForMessage)
|
||||||
fetch_user_leaveWord_reply(f)
|
f.children
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,6 +41,9 @@ module Mobile
|
||||||
w.user
|
w.user
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
expose :current_user, using: Mobile::Entities::User do |w, opt|
|
||||||
|
current_user
|
||||||
|
end
|
||||||
expose :name
|
expose :name
|
||||||
expose :description
|
expose :description
|
||||||
expose :publish_time
|
expose :publish_time
|
||||||
|
|
|
@ -409,4 +409,45 @@ module ApiHelper
|
||||||
l(:text_journal_deleted, :label => label, :old => old_value).html_safe
|
l(:text_journal_deleted, :label => label, :old => old_value).html_safe
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#课程动态的更新
|
||||||
|
def update_course_activity_api type, id
|
||||||
|
course_activity = CourseActivity.where("course_act_type=? and course_act_id =?", type.to_s, id).first
|
||||||
|
if course_activity
|
||||||
|
course_activity.updated_at = Time.now
|
||||||
|
course_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
#首页动态更新
|
||||||
|
def update_user_activity_api type, id
|
||||||
|
user_activity = UserActivity.where("act_type=? and act_id =?", type.to_s, id).first
|
||||||
|
if user_activity
|
||||||
|
user_activity.updated_at = Time.now
|
||||||
|
user_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
#项目动态更新
|
||||||
|
def update_forge_activity_api type, id
|
||||||
|
forge_activity = ForgeActivity.where("forge_act_type=? and forge_act_id=?", type.to_s, id).first
|
||||||
|
if forge_activity
|
||||||
|
forge_activity.updated_at = Time.now
|
||||||
|
forge_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
#组织动态更新
|
||||||
|
def update_org_activity_api type , id
|
||||||
|
org_activity = OrgActivity.where("org_act_type=? and org_act_id =?", type.to_s, id).first
|
||||||
|
if org_activity
|
||||||
|
org_activity.updated_at = Time.now
|
||||||
|
org_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
#个人动态更新
|
||||||
|
def update_principal_activity_api type, id
|
||||||
|
principal_activity = PrincipalActivity.where("principal_act_type=? and principal_act_id =?", type.to_s, id).first
|
||||||
|
if principal_activity
|
||||||
|
principal_activity.updated_at = Time.now
|
||||||
|
principal_activity.save
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -54,7 +54,7 @@ class Journal < ActiveRecord::Base
|
||||||
|
|
||||||
# fq
|
# fq
|
||||||
after_save :act_as_activity,:be_user_score, :act_as_forge_message, act_as_at_message(:notes, :user_id)
|
after_save :act_as_activity,:be_user_score, :act_as_forge_message, act_as_at_message(:notes, :user_id)
|
||||||
after_create :update_issue_timeissue, :issue_wechat_message
|
after_create :issue_wechat_message
|
||||||
# end
|
# end
|
||||||
#after_destroy :down_user_score
|
#after_destroy :down_user_score
|
||||||
#before_save :be_user_score
|
#before_save :be_user_score
|
||||||
|
|
Loading…
Reference in New Issue