# typed: false # frozen_string_literal: true module BodyParameter module YettoParameters extend T::Sig sig { returns(String) } def bparam_organization_id plug_installation_params[:yetto][:organization][:id] end sig { returns(String) } def bparam_inbox_id plug_installation_params[:yetto][:inbox][:id] end sig { returns(String) } def bparam_plug_installation_id plug_installation_params[:yetto][:plug_installation][:id] end sig { returns(String) } def bparam_plug_id plug_installation_params[:yetto][:plug][:id] end sig { returns(T::Hash[Symbol, String]) } def bparam_plug_installation_settings plug_installation_params[:yetto][:plug_installation][:settings] end sig { returns(T::Hash[Symbol, String]) } def plug_installation_params return {} if params.blank? yetto_params = params.fetch(:yetto, {}) plug_installation = yetto_params.fetch(:plug_installation, {}) plug_installation_id = plug_installation.fetch(:id, "") settings = plug_installation.fetch(:settings, {}).to_unsafe_hash organization_id = yetto_params.fetch(:organization, {}).fetch(:id, "") plug_id = yetto_params.fetch(:plug, {}).fetch(:id, "") inbox_id = yetto_params.fetch(:inbox, {}).fetch(:id, "") { yetto: { plug_installation: { id: plug_installation_id, settings: settings, }, organization: { id: organization_id, }, plug: { id: plug_id, }, inbox: { id: inbox_id, }, }, } end sig { returns(String) } def bparam_message_id message_params[:yetto][:message][:id] end sig { returns(String) } def bparam_message_text_content message_params[:yetto][:message][:text_content] end sig { returns(String) } def bparam_message_conversation_id message_params[:yetto][:message][:conversation][:id] end sig { returns(String) } def bparam_message_conversation_title message_params[:yetto][:message][:conversation][:title] end sig { returns(String) } def bparam_message_author_name message_params[:yetto][:message].fetch(:author, {}).fetch(:name, "Noone") end sig { returns(T::Hash[Symbol, String]) } def bparam_message_metadata message_params[:yetto][:message][:metadata] end sig { returns(T::Hash[Symbol, String]) } def message_params return {} if params.blank? yetto_params = params.fetch(:yetto, {}) message = yetto_params.fetch(:message, {}) message_id = message.fetch(:id, "") text_content = message.fetch(:text_content, "") conversation = message.fetch(:conversation, {}) conversation_id = conversation.fetch(:id, "") title = conversation.fetch(:title, "") created_by_membership = message.fetch(:created_by_membership, {}) created_by_plug = message.fetch(:created_by_plug, {}) author = created_by_membership.fetch(:user) || created_by_plug name = author.fetch(:name, "") metadata = message.fetch(:metadata, {}).to_unsafe_hash { yetto: { message: { id: message_id, text_content: text_content, conversation: { id: conversation_id, title: title, }, author: { name: name, }, metadata: metadata, }, }, } end end end