41 lines
1.4 KiB
Ruby
41 lines
1.4 KiB
Ruby
#coding=utf-8
|
|
|
|
module Mobile
|
|
module Apis
|
|
class Praise< Grape::API
|
|
include ApiHelper
|
|
resources :praise do
|
|
desc "praise an activity"
|
|
|
|
params do
|
|
requires :type, type: String
|
|
requires :openid, type: String
|
|
end
|
|
post ':id' do
|
|
obj_id = params[:id]
|
|
obj_type = params[:type]
|
|
user = UserWechat.find_by_openid(params[:openid]).user
|
|
pts = PraiseTread.where("praise_tread_object_id=? and praise_tread_object_type=? and user_id=?",obj_id,obj_type.to_s,user.id).first
|
|
if pts.blank?
|
|
praise_or_cancel(obj_type,obj_id,user,1)
|
|
obj = PraiseTreadCache.where("object_id=? and object_type=?",obj_id,obj_type.to_s).first
|
|
num = get_activity_praise_num(obj) if !obj.blank?
|
|
else
|
|
pts.destroy if !pts.blank?
|
|
#再更新praise_tread_cache表 使相应的记录减1 当为0时删除
|
|
ptc = PraiseTreadCache.where("object_id=? and object_type=?",obj_id,obj_type.to_s).first
|
|
ptc.praise_minus(1) if !ptc.blank?
|
|
if ptc.praise_num == 0
|
|
ptc.delete
|
|
end
|
|
obj = PraiseTreadCache.where("object_id=? and object_type=?",obj_id,obj_type.to_s).first
|
|
num = !obj.blank? ? get_activity_praise_num(obj) : 0
|
|
end
|
|
|
|
present :data, num
|
|
present :status, 0
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |