2020-01-09 07:36:40 +00:00
|
|
|
class Api::V1::Widget::BaseController < ApplicationController
|
2020-11-30 10:54:54 +00:00
|
|
|
include SwitchLocale
|
|
|
|
|
2020-06-07 08:28:05 +00:00
|
|
|
before_action :set_web_widget
|
|
|
|
before_action :set_contact
|
|
|
|
|
2020-01-09 07:36:40 +00:00
|
|
|
private
|
|
|
|
|
2020-10-18 18:02:22 +00:00
|
|
|
def conversations
|
2021-01-17 17:14:03 +00:00
|
|
|
if @contact_inbox.hmac_verified?
|
|
|
|
verified_contact_inbox_ids = @contact.contact_inboxes.where(inbox_id: auth_token_params[:inbox_id], hmac_verified: true).map(&:id)
|
|
|
|
@conversations = @contact.conversations.where(contact_inbox_id: verified_contact_inbox_ids)
|
|
|
|
else
|
|
|
|
@conversations = @contact_inbox.conversations.where(inbox_id: auth_token_params[:inbox_id])
|
|
|
|
end
|
2020-10-18 18:02:22 +00:00
|
|
|
end
|
|
|
|
|
2020-01-09 07:36:40 +00:00
|
|
|
def conversation
|
2020-10-18 18:02:22 +00:00
|
|
|
@conversation ||= conversations.last
|
2020-01-09 07:36:40 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def auth_token_params
|
|
|
|
@auth_token_params ||= ::Widget::TokenService.new(token: request.headers[header_name]).decode_token
|
|
|
|
end
|
|
|
|
|
|
|
|
def header_name
|
|
|
|
'X-Auth-Token'
|
|
|
|
end
|
|
|
|
|
|
|
|
def set_web_widget
|
|
|
|
@web_widget = ::Channel::WebWidget.find_by!(website_token: permitted_params[:website_token])
|
2020-10-05 12:25:46 +00:00
|
|
|
@current_account = @web_widget.account
|
2020-01-09 07:36:40 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def set_contact
|
|
|
|
@contact_inbox = @web_widget.inbox.contact_inboxes.find_by(
|
|
|
|
source_id: auth_token_params[:source_id]
|
|
|
|
)
|
|
|
|
@contact = @contact_inbox.contact
|
|
|
|
end
|
2020-07-20 12:58:14 +00:00
|
|
|
|
|
|
|
def browser_params
|
|
|
|
{
|
|
|
|
browser_name: browser.name,
|
|
|
|
browser_version: browser.full_version,
|
|
|
|
device_name: browser.device.name,
|
|
|
|
platform_name: browser.platform.name,
|
|
|
|
platform_version: browser.platform.version
|
|
|
|
}
|
|
|
|
end
|
2020-01-09 07:36:40 +00:00
|
|
|
end
|