trabajo-afectivo/app/controllers/ticket_overviews_controller.rb

91 lines
2.1 KiB
Ruby
Raw Normal View History

2014-02-03 19:24:49 +00:00
# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
require 'ticket/overviews'
2012-04-10 14:06:46 +00:00
class TicketOverviewsController < ApplicationController
before_action :authentication_check
2012-04-10 14:06:46 +00:00
# GET /api/v1/ticket_overviews
2012-04-10 14:06:46 +00:00
def show
# get navbar overview data
if !params[:view]
result = Ticket::Overviews.list(
current_user: current_user,
)
render json: result
2012-04-10 14:06:46 +00:00
return
end
# get real overview data
if params[:array]
overview = Ticket::Overviews.list(
view: params[:view],
current_user: current_user,
array: true,
)
tickets = []
2012-11-26 23:22:52 +00:00
overview[:tickets].each {|ticket_id|
data = { id: ticket_id }
tickets.push data
}
# return result
render json: {
overview: overview[:overview],
tickets: tickets,
tickets_count: overview[:tickets_count],
}
2012-11-26 23:22:52 +00:00
return
end
overview = Ticket::Overviews.list(
view: params[:view],
current_user: current_user,
array: true,
)
2012-11-26 23:22:52 +00:00
if !overview
render json: { error: "No such view #{params[:view]}!" }, status: :unprocessable_entity
2012-11-26 23:22:52 +00:00
return
end
2012-04-10 14:06:46 +00:00
# get related users
2014-08-02 22:06:51 +00:00
assets = {}
overview[:ticket_ids].each {|ticket_id|
ticket = Ticket.lookup( id: ticket_id )
assets = ticket.assets(assets)
2012-04-10 14:06:46 +00:00
}
2012-09-13 00:43:45 +00:00
# get groups
group_ids = []
Group.where( active: true ).each { |group|
2012-09-13 00:43:45 +00:00
group_ids.push group.id
}
agents = {}
User.of_role('Agent').each { |user|
2012-09-13 00:43:45 +00:00
agents[ user.id ] = 1
}
groups_users = {}
group_ids.each {|group_id|
groups_users[ group_id ] = []
Group.find(group_id).users.each {|user|
next if !agents[ user.id ]
groups_users[ group_id ].push user.id
2014-08-02 22:06:51 +00:00
assets = user.assets( assets )
}
2012-04-10 14:06:46 +00:00
}
# return result
render json: {
view: params[:view],
overview: overview[:overview],
ticket_ids: overview[:ticket_ids],
tickets_count: overview[:tickets_count],
bulk: {
group_id__owner_id: groups_users,
2012-04-14 16:47:37 +00:00
},
assets: assets,
2012-04-14 16:47:37 +00:00
}
2012-04-10 14:06:46 +00:00
end
end