This commit is contained in:
2015-09-08 16:27:21 +02:00
parent d87befd00f
commit fdcfaa1d7d
10 changed files with 39 additions and 37 deletions
-15
View File
@@ -71,21 +71,6 @@ class UserController < Users::ApplicationController
end
end
# POST /user/reject_join_request?user_id=1
def reject_join_request
render js: '' and return unless params[:user_id].present?
list && list.reject_join_request_for_user!(params[:user_id])
render js: ''
end
# POST /user/approve_join_request?user_id=1
def approve_join_request
render js: '' and return unless params[:user_id].present?
@user = User.find(params[:user_id])
list && list.approve_join_request_for_user!(@user)
render nothing: true
end
# POST /user/check_table_join_status.json table_id:12345
def check_table_join_status
render json: json_alert('messages.table_not_found') and return unless params[:table_id].present?
+17 -2
View File
@@ -8,7 +8,7 @@ module Users
#lists.reject!{|l| l.id == params[:exclude_list]} if params[:exclude_list].present?
#lists.reject!{|l| l.id == current_user.active_list_id } if current_user && current_user.active_list_id.present? # see spec Loading lists and switching to the order products view works, lists loading may unlink active list orders
lists.include_relation(:users, :supplier)
render json: JSONAPI::Serializer.serialize(lists, serializer: Users::ListSerializer, include: %w[supplier users], is_collection: true, meta: {total_pages: lists.total_count, page: lists.current_page}) #, root: :lists
render json: JSONAPI::Serializer.serialize(lists, serializer: Users::ListSerializer, include: %w[supplier users], is_collection: true, meta: {total_pages: lists.total_pages, page: lists.current_page}) #, root: :lists
end
#EMBER
@@ -27,7 +27,7 @@ module Users
def show
@list ||= List.find(params[:id]) if params[:id]
render json: {}, status: :not_found and return unless @list.present? && Array.wrap(@list.user_ids).include?(current_user.id)
render json: JSONAPI::Serializer.serialize(@list, serializer: Users::ListSerializer, include: %w[supplier users])
render json: JSONAPI::Serializer.serialize(@list, serializer: Users::ListSerializer, include: %w[supplier users join_requests join_requests.list join_requests.user])
end
# POST /user/list_needs_payment.json
@@ -76,5 +76,20 @@ module Users
render json: res
end
# POST /user/reject_join_request?user_id=1
def reject_join_request
render js: '' and return unless params[:user_id].present?
active_list && active_list.reject_join_request_for_user!(params[:user_id])
head :ok
end
# POST /user/approve_join_request?user_id=1
def approve_join_request
render js: '' and return unless params[:user_id].present?
@user = User.find(params[:user_id])
active_list && active_list.approve_join_request_for_user!(@user)
head :ok
end
end
end
+6 -5
View File
@@ -6,7 +6,7 @@ class List
end
def join_request_for_user(user)
JoinRequest.new(user: user, list: self)
JoinRequest.new(user: user, list: self, created_at: created_at, updated_at: updated_at)
end
def join_requests
@@ -14,12 +14,13 @@ class List
end
def send_table_join_request_for_user!(requester)
unless join_request_user_ids.include?(requester.id) or user_ids.include?(requester.id)
#unless join_request_user_ids.include?(requester.id) or user_ids.include?(requester.id) # do not resend
unless user_ids.include?(requester.id) # resend for the sake of it for now
@join_requests = nil # bust cache
self.join_request_user_ids << requester.id
self.join_request_user_ids |= [requester.id]
self.is_dirty
if save
broadcast_users 'user_join_request', JoinRequestSerializer.new(join_request_for_user(requester)).as_json
broadcast_users 'user_join_request', payload: JSONAPI::Serializer.serialize( join_request_for_user(requester), serializer: Users::JoinRequestSerializer, include: %w[list user])
end
end
end
@@ -31,7 +32,7 @@ class List
add_user(user)
user.save
self.is_dirty
save and broadcast_users 'join_request_approved', UserUserSerializer.new(user).as_json
save and broadcast_users 'join_request_approved', id: "jr-#{user.id}"
end
end
@@ -1,4 +0,0 @@
class JoinRequestSerializer < Qwaiter::Serializer
attributes :list_id
has_one :user, serializer: Users::UserSerializer
end
@@ -0,0 +1,5 @@
class Users::JoinRequestSerializer
include Qwaiter::UserBaseSerializer
has_one :user, serializer: Users::UserSerializer
has_one :list, serializer: Users::ListSerializer
end
+2 -1
View File
@@ -6,7 +6,8 @@ class Users::ListSerializer
:is_paid, :price, :closed_at
has_many :users, serializer: Users::UserSerializer
has_many(:orders, serializer: Users::OrderSerializer){}
has_many(:orders, serializer: Users::OrderSerializer)
has_many :join_requests, serializer: Users::JoinRequestSerializer
has_one :supplier, serializer: Users::SupplierSerializer
has_one :table, serializer: Users::TableSerializer
+2 -5
View File
@@ -1,8 +1,5 @@
class Users::UserSerializer
include Qwaiter::UserBaseSerializer
attributes :email, :provider, :uid, :name, :avatar
def name
object.friends_name
end
attributes :email, :provider, :uid, :avatar
attribute(:name){ object.friends_name }
end
+3 -3
View File
@@ -1,12 +1,12 @@
class JoinRequest
attr_reader :user, :list
attr_reader :user, :list, :created_at, :updated_at
def id
"jr-#{user_id}"
end
alias _id id
def initialize(user: nil, list: nil)
@user, @list = user, list
def initialize(user: nil, list: nil, created_at: Time.now, updated_at: Time.now)
@user, @list, @created_at, @updated_at = [user, list, created_at, updated_at]
end
def user_id