Class: Doodle::ChatController
Instance Method Summary
collapse
#auth_params, #authenticate, #authenticate_user
Instance Method Details
#chat_join_service(protocol, user) ⇒ Object
41
42
43
|
# File 'app/controllers/doodle/chat_controller.rb', line 41
def chat_join_service(protocol, user)
@chat_join_service ||= Chat::JoinService.new(user, protocol)
end
|
#finalize ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'app/controllers/doodle/chat_controller.rb', line 22
def finalize
user = User::Analyst.find_by_login(params.require(:login))
protocol = protocol_finder_service.find_by_conversation(params.require(:id))
if user.blank? || protocol.blank?
render json: { text: "Protocol or user dont found"}, status: 422
else
protocol_finalizer_service(protocol).call
chat_join_service(protocol, user).out(protocol.channel.name)
render json: { id: protocol.id, text: "Protocol finalized with success" }
end
end
|
#has_protocols? ⇒ Boolean
6
7
8
9
|
# File 'app/controllers/doodle/chat_controller.rb', line 6
def has_protocols?
protocols = Protocol.waiting_in_channel(params.require(:channel))
render json: { has_protocols: protocols.size }, status: 200
end
|
#next ⇒ Object
11
12
13
14
15
16
17
18
19
20
|
# File 'app/controllers/doodle/chat_controller.rb', line 11
def next
protocol = protocol_finder_service.next
join_service = chat_join_service(protocol)
if join_service.break_limit? && protocol.blank?
render json: { error: 'Analyst already have limit of protocols in progress' }, status: 422
else
join_service.join(params.require(:channel))
render json: { conversation: protocol.conversation_id }, status: 200
end
end
|
#protocol_finalizer_service(protocol) ⇒ Object
37
38
39
|
# File 'app/controllers/doodle/chat_controller.rb', line 37
def protocol_finalizer_service(protocol)
@protcol_finalizer_service ||= Protocol::FinalizerService.new(protocol)
end
|
#protocol_finder_service ⇒ Object
45
46
47
|
# File 'app/controllers/doodle/chat_controller.rb', line 45
def protocol_finder_service
@finder_service ||= Protocol::FinderService.new
end
|