rcs 1.0.17 → 2.0.0.pre.rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/environment.rb +1 -1
- data/lib/rcs/brands/client.rb +631 -0
- data/lib/rcs/brands/types/autofill_brand_schema_options.rb +61 -0
- data/lib/rcs/brands/types/brand_contact.rb +84 -0
- data/lib/rcs/campaigns/client.rb +44 -0
- data/lib/rcs/campaigns/dlc/client.rb +480 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords.rb +99 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_help.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_in.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_out.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_links.rb +74 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_options.rb +110 -0
- data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_use_case.rb +76 -0
- data/lib/rcs/campaigns/rcs/client.rb +457 -0
- data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +155 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent.rb +140 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_emails_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_phones_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_websites_item.rb +73 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_links.rb +74 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_in.rb +75 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_out.rb +76 -0
- data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_use_case.rb +75 -0
- data/lib/rcs/campaigns/toll_free/client.rb +429 -0
- data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +130 -0
- data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_opt_in.rb +86 -0
- data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_use_case.rb +75 -0
- data/lib/rcs/contacts/client.rb +275 -0
- data/lib/rcs/conversations/client.rb +273 -0
- data/lib/rcs/message/client.rb +30 -0
- data/lib/rcs/message/sms/client.rb +96 -0
- data/lib/rcs/messages/client.rb +185 -0
- data/lib/rcs/messages/mms/client.rb +98 -0
- data/lib/rcs/messages/rcs/client.rb +94 -0
- data/lib/rcs/messages/send/client.rb +318 -0
- data/lib/rcs/messages/send/types/send_mms_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_mms_schema_options.rb +108 -0
- data/lib/rcs/messages/send/types/send_rcs_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_sms_response.rb +60 -0
- data/lib/rcs/messages/send/types/send_sms_schema_options.rb +81 -0
- data/lib/rcs/messages/types/message_reaction_schema_options.rb +71 -0
- data/lib/rcs/phone_numbers/campaign/client.rb +179 -0
- data/lib/rcs/phone_numbers/client.rb +345 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_level.rb +16 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_options.rb +93 -0
- data/lib/rcs/phone_numbers/types/phone_details_schema_options_enhanced_contact_info.rb +64 -0
- data/lib/rcs/phone_numbers/types/phone_numbers_get_response.rb +58 -0
- data/lib/rcs/phone_numbers/types/search_schema_location.rb +96 -0
- data/lib/rcs/phone_numbers/types/search_schema_number.rb +81 -0
- data/lib/rcs/phone_numbers/types/search_schema_options.rb +62 -0
- data/lib/rcs/phone_numbers/webhook/client.rb +191 -0
- data/lib/rcs/status/client.rb +30 -0
- data/lib/rcs/status/get/client.rb +367 -0
- data/lib/rcs/tools/client.rb +32 -199
- data/lib/rcs/tools/contact_card/client.rb +285 -0
- data/lib/rcs/tools/contact_card/types/get_v_card_schema_options.rb +67 -0
- data/lib/rcs/tools/file/client.rb +138 -0
- data/lib/rcs/tools/file/types/file_upload_schema_options.rb +70 -0
- data/lib/rcs/tools/file/types/file_upload_schema_options_download.rb +66 -0
- data/lib/rcs/tools/url/client.rb +245 -0
- data/lib/rcs/types/advanced_phone_information.rb +147 -0
- data/lib/rcs/types/advanced_phone_information_carrier.rb +90 -0
- data/lib/rcs/types/advanced_phone_information_contact.rb +146 -0
- data/lib/rcs/types/advanced_phone_information_location.rb +142 -0
- data/lib/rcs/types/advanced_phone_information_location_coordinates.rb +73 -0
- data/lib/rcs/types/advanced_phone_information_location_country.rb +77 -0
- data/lib/rcs/types/advanced_phone_information_type.rb +97 -0
- data/lib/rcs/types/advanced_phone_information_type_recommendation.rb +15 -0
- data/lib/rcs/types/agent.rb +68 -0
- data/lib/rcs/types/attach_webhook_params.rb +60 -0
- data/lib/rcs/types/attach_webhook_response_webhook.rb +86 -0
- data/lib/rcs/types/attach_webhook_schema_name.rb +88 -0
- data/lib/rcs/types/attach_webhook_schema_webhook_id.rb +77 -0
- data/lib/rcs/types/attached_phone_number_result.rb +75 -0
- data/lib/rcs/types/autofill_campaign_params.rb +69 -0
- data/lib/rcs/types/autofill_dlc_campaign_response.rb +169 -0
- data/lib/rcs/types/autofill_dlc_response_keywords.rb +95 -0
- data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +70 -0
- data/lib/rcs/{send/types/send_sms_response.rb → types/autofill_dlc_response_keywords_opt_in.rb} +18 -17
- data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +70 -0
- data/lib/rcs/types/autofill_dlc_response_links.rb +70 -0
- data/lib/rcs/types/autofill_dlc_response_options.rb +106 -0
- data/lib/rcs/types/autofill_dlc_response_use_case.rb +72 -0
- data/lib/rcs/types/bad_request_error_body.rb +44 -45
- data/lib/rcs/types/basic_phone_information.rb +127 -0
- data/lib/rcs/{company/types/company_register_response_brand.rb → types/basic_phone_information_contact.rb} +12 -21
- data/lib/rcs/types/basic_phone_information_location.rb +74 -0
- data/lib/rcs/types/basic_phone_information_location_country.rb +75 -0
- data/lib/rcs/types/brand_status.rb +92 -0
- data/lib/rcs/types/brand_status_enum.rb +21 -0
- data/lib/rcs/types/buy_response_capabilities.rb +77 -0
- data/lib/rcs/types/campaign_enum.rb +15 -0
- data/lib/rcs/types/campaign_query.rb +69 -0
- data/lib/rcs/{company/types/company_register_request_company_id.rb → types/campaign_submission_result.rb} +15 -16
- data/lib/rcs/types/campaign_validation_response_errors_item.rb +76 -0
- data/lib/rcs/types/campaign_validation_result.rb +71 -0
- data/lib/rcs/types/click_action.rb +73 -0
- data/lib/rcs/types/click_action_data.rb +56 -0
- data/lib/rcs/types/click_action_data_metadata.rb +69 -0
- data/lib/rcs/types/company_sector_enum.rb +26 -0
- data/lib/rcs/types/company_type_enum.rb +14 -0
- data/lib/rcs/types/configured_webhook.rb +85 -0
- data/lib/rcs/types/contact.rb +105 -0
- data/lib/rcs/types/contact_id.rb +57 -0
- data/lib/rcs/types/conversation.rb +146 -0
- data/lib/rcs/types/conversation_contact.rb +68 -0
- data/lib/rcs/types/conversation_list.rb +79 -0
- data/lib/rcs/types/conversation_sender.rb +60 -0
- data/lib/rcs/types/create_url_options.rb +61 -0
- data/lib/rcs/types/detached_phone_number_result.rb +75 -0
- data/lib/rcs/types/detached_webhook_info.rb +74 -0
- data/lib/rcs/types/detailed_phone_number_enum.rb +25 -0
- data/lib/rcs/types/dlc_assignment_status_enum.rb +19 -0
- data/lib/rcs/types/dlc_campaign_status.rb +107 -0
- data/lib/rcs/types/dlc_campaign_use_case_enum.rb +35 -0
- data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +194 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords.rb +94 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +72 -0
- data/lib/rcs/{send/types/send_mms_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_in.rb} +20 -17
- data/lib/rcs/{send/types/send_rcs_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_out.rb} +20 -17
- data/lib/rcs/types/dlc_with_extended_brand_and_status_links.rb +70 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_options.rb +106 -0
- data/lib/rcs/types/dlc_with_extended_brand_and_status_use_case.rb +72 -0
- data/lib/rcs/types/enhanced_contact.rb +9 -0
- data/lib/rcs/types/enhanced_contact_item.rb +104 -0
- data/lib/rcs/types/error.rb +61 -0
- data/lib/rcs/types/extended_brand.rb +194 -0
- data/lib/rcs/types/extended_brand_with_vetting.rb +226 -0
- data/lib/rcs/types/extended_rcs_campaign.rb +173 -0
- data/lib/rcs/{company/types/company_register_request.rb → types/get_conversation_params.rb} +13 -12
- data/lib/rcs/types/get_conversation_request_id.rb +58 -0
- data/lib/rcs/types/get_conversation_request_recipient.rb +72 -0
- data/lib/rcs/types/get_dlc_campaign_status_response_updates.rb +96 -0
- data/lib/rcs/types/get_toll_free_campaign_status_response_updates.rb +92 -0
- data/lib/rcs/types/inbound_button.rb +56 -0
- data/lib/rcs/types/link_click_event.rb +465 -0
- data/lib/rcs/{company/types/company_update_response.rb → types/location_share_action.rb} +19 -19
- data/lib/rcs/types/location_share_action_data.rb +89 -0
- data/lib/rcs/types/message.rb +174 -0
- data/lib/rcs/types/message_content.rb +85 -0
- data/lib/rcs/types/message_method_enum.rb +12 -0
- data/lib/rcs/types/message_protocol_enum.rb +12 -0
- data/lib/rcs/types/message_schedule.rb +94 -0
- data/lib/rcs/types/message_status_enum.rb +16 -0
- data/lib/rcs/types/message_volume_enum.rb +20 -0
- data/lib/rcs/types/messaging_profile_enum.rb +11 -0
- data/lib/rcs/types/mms_content.rb +74 -0
- data/lib/rcs/types/mms_validation_response_segments.rb +85 -0
- data/lib/rcs/types/mms_validation_response_segments_value_item.rb +75 -0
- data/lib/rcs/types/mms_validation_result.rb +82 -0
- data/lib/rcs/types/nullable_contact.rb +84 -0
- data/lib/rcs/types/number_format.rb +79 -0
- data/lib/rcs/types/opt_in_method_enum.rb +13 -0
- data/lib/rcs/types/optional_brand_info.rb +145 -0
- data/lib/rcs/types/optional_contact.rb +83 -0
- data/lib/rcs/types/optional_contacts.rb +84 -0
- data/lib/rcs/types/phone.rb +101 -0
- data/lib/rcs/types/phone_capabilities.rb +75 -0
- data/lib/rcs/types/phone_enum.rb +13 -0
- data/lib/rcs/types/phone_feature_enum.rb +18 -0
- data/lib/rcs/types/phone_number_campaign_attach_failed_item.rb +67 -0
- data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item.rb +75 -0
- data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +78 -0
- data/lib/rcs/types/phone_number_campaign_detach_failed_item.rb +67 -0
- data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item.rb +75 -0
- data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +78 -0
- data/lib/rcs/types/phone_number_cost.rb +75 -0
- data/lib/rcs/types/phone_number_details.rb +110 -0
- data/lib/rcs/types/phone_number_enum.rb +18 -0
- data/lib/rcs/types/phone_number_region.rb +91 -0
- data/lib/rcs/types/phone_number_status.rb +90 -0
- data/lib/rcs/types/phone_number_status_enum.rb +16 -0
- data/lib/rcs/types/pinnacle_file_upload_metadata.rb +84 -0
- data/lib/rcs/types/pinnacle_url_config.rb +71 -0
- data/lib/rcs/types/profile_status_enum.rb +17 -0
- data/lib/rcs/types/purchased_number.rb +75 -0
- data/lib/rcs/types/rcs.rb +70 -0
- data/lib/rcs/types/rcs_base.rb +82 -0
- data/lib/rcs/types/rcs_base_options.rb +100 -0
- data/lib/rcs/types/rcs_button_call.rb +68 -0
- data/lib/rcs/types/rcs_button_content.rb +148 -0
- data/lib/rcs/types/rcs_button_open_url.rb +68 -0
- data/lib/rcs/types/rcs_button_request_user_location.rb +58 -0
- data/lib/rcs/types/rcs_button_schedule_event.rb +98 -0
- data/lib/rcs/types/rcs_button_send_location.rb +74 -0
- data/lib/rcs/types/rcs_button_send_location_lat_long.rb +68 -0
- data/lib/rcs/types/rcs_button_trigger.rb +78 -0
- data/lib/rcs/types/rcs_campaign.rb +143 -0
- data/lib/rcs/types/rcs_campaign_opt_in_method_enum.rb +15 -0
- data/lib/rcs/types/rcs_campaign_schema_agent.rb +134 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_emails_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_phones_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_agent_websites_item.rb +69 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +134 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_emails_item.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_phones_item.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_agent_websites_item.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_links.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_opt_in.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_opt_out.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_extra_use_case.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_links.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_opt_in.rb +71 -0
- data/lib/rcs/types/rcs_campaign_schema_opt_out.rb +70 -0
- data/lib/rcs/types/rcs_campaign_schema_use_case.rb +71 -0
- data/lib/rcs/types/rcs_campaign_status.rb +86 -0
- data/lib/rcs/types/rcs_campaign_use_case_enum.rb +23 -0
- data/lib/rcs/types/rcs_card.rb +110 -0
- data/lib/rcs/types/rcs_cards.rb +79 -0
- data/lib/rcs/types/rcs_cards_cards_item.rb +88 -0
- data/lib/rcs/types/rcs_cards_content.rb +79 -0
- data/lib/rcs/types/rcs_cards_content_cards_item.rb +94 -0
- data/lib/rcs/types/rcs_content.rb +72 -0
- data/lib/rcs/types/rcs_media.rb +110 -0
- data/lib/rcs/types/rcs_media_content.rb +81 -0
- data/lib/rcs/types/rcs_media_details_content.rb +77 -0
- data/lib/rcs/types/rcs_text.rb +106 -0
- data/lib/rcs/types/rcs_text_content.rb +72 -0
- data/lib/rcs/types/rcs_validate_content.rb +70 -0
- data/lib/rcs/{company/types/company_register_response.rb → types/rcs_validate_content_media.rb} +19 -21
- data/lib/rcs/types/rcs_validation_result.rb +76 -0
- data/lib/rcs/types/reaction_result.rb +67 -0
- data/lib/rcs/types/scheduled_messaage.rb +73 -0
- data/lib/rcs/types/scheduled_send_response_config.rb +89 -0
- data/lib/rcs/types/send_sms_response_segments.rb +69 -0
- data/lib/rcs/types/send_sms_response_segments_encoding.rb +11 -0
- data/lib/rcs/types/sent_mms_details.rb +102 -0
- data/lib/rcs/types/sent_rcs_details.rb +105 -0
- data/lib/rcs/types/sent_sms_details.rb +108 -0
- data/lib/rcs/types/shortened_url.rb +77 -0
- data/lib/rcs/types/shortened_url_with_click_data.rb +90 -0
- data/lib/rcs/types/sms_content.rb +58 -0
- data/lib/rcs/types/sms_validation_response_segments.rb +80 -0
- data/lib/rcs/types/sms_validation_response_segments_gsm_7.rb +75 -0
- data/lib/rcs/types/sms_validation_response_segments_utf_16.rb +68 -0
- data/lib/rcs/types/sms_validation_response_total.rb +75 -0
- data/lib/rcs/types/sms_validation_result.rb +102 -0
- data/lib/rcs/types/sub_use_case_enum.rb +19 -0
- data/lib/rcs/types/submission_results.rb +57 -0
- data/lib/rcs/types/successful_conversation_update.rb +58 -0
- data/lib/rcs/types/toll_free_campaign.rb +118 -0
- data/lib/rcs/types/toll_free_campaign_schema_opt_in.rb +78 -0
- data/lib/rcs/types/toll_free_campaign_schema_use_case.rb +71 -0
- data/lib/rcs/types/toll_free_campaign_status.rb +91 -0
- data/lib/rcs/types/toll_free_campaign_use_case_enum.rb +52 -0
- data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +155 -0
- data/lib/rcs/types/toll_free_status_enum.rb +20 -0
- data/lib/rcs/types/tracking.rb +17 -0
- data/lib/rcs/types/updated_contact_id.rb +57 -0
- data/lib/rcs/types/upload_results.rb +80 -0
- data/lib/rcs/types/v_card_address_schema_type_item.rb +15 -0
- data/lib/rcs/types/v_card_data.rb +237 -0
- data/lib/rcs/types/v_card_data_file.rb +74 -0
- data/lib/rcs/types/v_card_data_file_metadata.rb +62 -0
- data/lib/rcs/types/v_card_email_schema_type_item.rb +21 -0
- data/lib/rcs/types/v_card_geo.rb +70 -0
- data/lib/rcs/types/v_card_name.rb +98 -0
- data/lib/rcs/types/v_card_organization.rb +70 -0
- data/lib/rcs/types/v_card_phone_schema_type_item.rb +21 -0
- data/lib/rcs/types/validate_campaign_params.rb +69 -0
- data/lib/rcs/types/validation_error_details.rb +76 -0
- data/lib/rcs/types/validation_results.rb +71 -0
- data/lib/rcs/types/vcard.rb +215 -0
- data/lib/rcs/types/vcard_address.rb +130 -0
- data/lib/rcs/types/vcard_content.rb +223 -0
- data/lib/rcs/types/vcard_email.rb +70 -0
- data/lib/rcs/types/vcard_phone.rb +70 -0
- data/lib/rcs/types/vcard_resource.rb +71 -0
- data/lib/rcs/types/vetting_feedback.rb +81 -0
- data/lib/rcs/types/vetting_history.rb +98 -0
- data/lib/rcs/types/vetting_history_vetting_status.rb +13 -0
- data/lib/rcs/types/vetting_results.rb +57 -0
- data/lib/rcs/types/webhook_event_enum.rb +13 -0
- data/lib/rcs/types/webhook_result.rb +64 -0
- data/lib/rcs/{company/types/company_update_response_brand.rb → types/webhooks.rb} +25 -17
- data/lib/rcs/types/zod_error.rb +73 -0
- data/lib/rcs/webhooks/client.rb +93 -0
- data/lib/rcs.rb +67 -83
- data/lib/requests.rb +4 -4
- data/lib/types_export.rb +252 -46
- metadata +278 -52
- data/lib/rcs/company/client.rb +0 -375
- data/lib/rcs/company/types/company_register_request_company.rb +0 -128
- data/lib/rcs/send/client.rb +0 -382
- data/lib/rcs/send/types/rcs_fallback.rb +0 -84
- data/lib/rcs/tools/types/tools_shorten_url_response.rb +0 -70
- data/lib/rcs/tools/types/tools_upload_url_response.rb +0 -69
- data/lib/rcs/types/action.rb +0 -154
- data/lib/rcs/types/action_lat_long.rb +0 -68
- data/lib/rcs/types/action_type.rb +0 -16
- data/lib/rcs/types/additional_email.rb +0 -65
- data/lib/rcs/types/additional_phone_number.rb +0 -65
- data/lib/rcs/types/additional_website.rb +0 -65
- data/lib/rcs/types/card.rb +0 -90
- data/lib/rcs/types/company.rb +0 -319
- data/lib/rcs/types/company_additional_emails_item.rb +0 -67
- data/lib/rcs/types/company_additional_phone_numbers_item.rb +0 -67
- data/lib/rcs/types/company_additional_websites_item.rb +0 -67
- data/lib/rcs/types/company_category.rb +0 -20
- data/lib/rcs/types/company_contact.rb +0 -117
- data/lib/rcs/types/company_details.rb +0 -120
- data/lib/rcs/types/forbidden_error_body.rb +0 -57
- data/lib/rcs/types/inbound_action_message.rb +0 -117
- data/lib/rcs/types/inbound_location_message.rb +0 -106
- data/lib/rcs/types/inbound_location_message_coordinates.rb +0 -65
- data/lib/rcs/types/inbound_media_message.rb +0 -112
- data/lib/rcs/types/inbound_message.rb +0 -88
- data/lib/rcs/types/inbound_message_message_type.rb +0 -10
- data/lib/rcs/types/inbound_message_metadata.rb +0 -79
- data/lib/rcs/types/inbound_text_message.rb +0 -100
- data/lib/rcs/types/internal_server_error_body.rb +0 -57
- data/lib/rcs/types/media_payload.rb +0 -65
- data/lib/rcs/types/message_metadata.rb +0 -56
- data/lib/rcs/types/messaging.rb +0 -95
- data/lib/rcs/types/optionals.rb +0 -99
- data/lib/rcs/types/payment_required_error_body.rb +0 -57
- data/lib/rcs/types/point_of_contact.rb +0 -72
- data/lib/rcs/types/rcs_functionalities.rb +0 -117
- data/lib/rcs/types/sender_metadata.rb +0 -74
- data/lib/rcs/types/unauthorized_error_body.rb +0 -57
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../types/toll_free_campaign_use_case_enum"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
module Campaigns
|
9
|
+
module TollFree
|
10
|
+
module Types
|
11
|
+
# Use case classification for the campaign.
|
12
|
+
class UpsertTollFreeSchemaUseCase
|
13
|
+
# @return [String] Summary of the use case.
|
14
|
+
attr_reader :summary
|
15
|
+
# @return [Pinnacle::Types::TollFreeCampaignUseCaseEnum]
|
16
|
+
attr_reader :value
|
17
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
18
|
+
attr_reader :additional_properties
|
19
|
+
# @return [Object]
|
20
|
+
attr_reader :_field_set
|
21
|
+
protected :_field_set
|
22
|
+
|
23
|
+
OMIT = Object.new
|
24
|
+
|
25
|
+
# @param summary [String] Summary of the use case.
|
26
|
+
# @param value [Pinnacle::Types::TollFreeCampaignUseCaseEnum]
|
27
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
28
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase]
|
29
|
+
def initialize(summary: OMIT, value: OMIT, additional_properties: nil)
|
30
|
+
@summary = summary if summary != OMIT
|
31
|
+
@value = value if value != OMIT
|
32
|
+
@additional_properties = additional_properties
|
33
|
+
@_field_set = { "summary": summary, "value": value }.reject do |_k, v|
|
34
|
+
v == OMIT
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Deserialize a JSON object to an instance of UpsertTollFreeSchemaUseCase
|
39
|
+
#
|
40
|
+
# @param json_object [String]
|
41
|
+
# @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase]
|
42
|
+
def self.from_json(json_object:)
|
43
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
44
|
+
parsed_json = JSON.parse(json_object)
|
45
|
+
summary = parsed_json["summary"]
|
46
|
+
value = parsed_json["value"]
|
47
|
+
new(
|
48
|
+
summary: summary,
|
49
|
+
value: value,
|
50
|
+
additional_properties: struct
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Serialize an instance of UpsertTollFreeSchemaUseCase to a JSON object
|
55
|
+
#
|
56
|
+
# @return [String]
|
57
|
+
def to_json(*_args)
|
58
|
+
@_field_set&.to_json
|
59
|
+
end
|
60
|
+
|
61
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
62
|
+
# hash and check each fields type against the current object's property
|
63
|
+
# definitions.
|
64
|
+
#
|
65
|
+
# @param obj [Object]
|
66
|
+
# @return [Void]
|
67
|
+
def self.validate_raw(obj:)
|
68
|
+
obj.summary&.is_a?(String) != false || raise("Passed value for field obj.summary is not the expected type, validation failed.")
|
69
|
+
obj.value&.is_a?(Pinnacle::Types::TollFreeCampaignUseCaseEnum) != false || raise("Passed value for field obj.value is not the expected type, validation failed.")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,275 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/contact"
|
5
|
+
require_relative "../types/contact_id"
|
6
|
+
require_relative "../types/updated_contact_id"
|
7
|
+
require "async"
|
8
|
+
|
9
|
+
module Pinnacle
|
10
|
+
class ContactsClient
|
11
|
+
# @return [Pinnacle::RequestClient]
|
12
|
+
attr_reader :request_client
|
13
|
+
|
14
|
+
# @param request_client [Pinnacle::RequestClient]
|
15
|
+
# @return [Pinnacle::ContactsClient]
|
16
|
+
def initialize(request_client:)
|
17
|
+
@request_client = request_client
|
18
|
+
end
|
19
|
+
|
20
|
+
# Retrieve contact information for a given number.
|
21
|
+
#
|
22
|
+
# @param id [Integer] Unique identifier of a specific contact you want to retrieve. <br>
|
23
|
+
# Either this parameter or `phoneNumber` must be provided, but not both.
|
24
|
+
# @param phone_number [String] Phone number you want to look up contact information for, provided in
|
25
|
+
# URL-encoded E.164 format with %2B prefix instead of +.
|
26
|
+
# @param request_options [Pinnacle::RequestOptions]
|
27
|
+
# @return [Pinnacle::Types::Contact]
|
28
|
+
# @example
|
29
|
+
# api = Pinnacle::Client.new(
|
30
|
+
# base_url: "https://api.example.com",
|
31
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
32
|
+
# api_key: "YOUR_API_KEY"
|
33
|
+
# )
|
34
|
+
# api.contacts.get
|
35
|
+
def get(id: nil, phone_number: nil, request_options: nil)
|
36
|
+
response = @request_client.conn.get do |req|
|
37
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
38
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
39
|
+
req.headers = {
|
40
|
+
**(req.headers || {}),
|
41
|
+
**@request_client.get_headers,
|
42
|
+
**(request_options&.additional_headers || {})
|
43
|
+
}.compact
|
44
|
+
req.params = {
|
45
|
+
**(request_options&.additional_query_parameters || {}),
|
46
|
+
"id": id,
|
47
|
+
"phoneNumber": phone_number
|
48
|
+
}.compact
|
49
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
50
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
51
|
+
end
|
52
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
53
|
+
end
|
54
|
+
Pinnacle::Types::Contact.from_json(json_object: response.body)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Create a new contact for a given phone number.
|
58
|
+
#
|
59
|
+
# @param description [String] New notes or details for your contact.
|
60
|
+
# @param email [String] New email address for your contact.
|
61
|
+
# @param name [String] New name for your contact.
|
62
|
+
# @param tags [Array<String>] New tags for your contact.
|
63
|
+
# @param phone_number [String] Phone number to save for your contact, in E.164 format.
|
64
|
+
# @param request_options [Pinnacle::RequestOptions]
|
65
|
+
# @return [Pinnacle::Types::ContactId]
|
66
|
+
# @example
|
67
|
+
# api = Pinnacle::Client.new(
|
68
|
+
# base_url: "https://api.example.com",
|
69
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
70
|
+
# api_key: "YOUR_API_KEY"
|
71
|
+
# )
|
72
|
+
# api.contacts.create(phone_number: "phoneNumber")
|
73
|
+
def create(phone_number:, description: nil, email: nil, name: nil, tags: nil, request_options: nil)
|
74
|
+
response = @request_client.conn.post do |req|
|
75
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
76
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
77
|
+
req.headers = {
|
78
|
+
**(req.headers || {}),
|
79
|
+
**@request_client.get_headers,
|
80
|
+
**(request_options&.additional_headers || {})
|
81
|
+
}.compact
|
82
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
83
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
84
|
+
end
|
85
|
+
req.body = {
|
86
|
+
**(request_options&.additional_body_parameters || {}),
|
87
|
+
description: description,
|
88
|
+
email: email,
|
89
|
+
name: name,
|
90
|
+
tags: tags,
|
91
|
+
phoneNumber: phone_number
|
92
|
+
}.compact
|
93
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
94
|
+
end
|
95
|
+
Pinnacle::Types::ContactId.from_json(json_object: response.body)
|
96
|
+
end
|
97
|
+
|
98
|
+
# Update an existing contact.
|
99
|
+
#
|
100
|
+
# @param description [String] New notes or details for your contact.
|
101
|
+
# @param email [String] New email address for your contact.
|
102
|
+
# @param name [String] New name for your contact.
|
103
|
+
# @param tags [Array<String>] New tags for your contact.
|
104
|
+
# @param id [Integer] ID of the contact you want to update.
|
105
|
+
# @param request_options [Pinnacle::RequestOptions]
|
106
|
+
# @return [Pinnacle::Types::UpdatedContactId]
|
107
|
+
# @example
|
108
|
+
# api = Pinnacle::Client.new(
|
109
|
+
# base_url: "https://api.example.com",
|
110
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
111
|
+
# api_key: "YOUR_API_KEY"
|
112
|
+
# )
|
113
|
+
# api.contacts.update(id: 137)
|
114
|
+
def update(id:, description: nil, email: nil, name: nil, tags: nil, request_options: nil)
|
115
|
+
response = @request_client.conn.put do |req|
|
116
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
117
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
118
|
+
req.headers = {
|
119
|
+
**(req.headers || {}),
|
120
|
+
**@request_client.get_headers,
|
121
|
+
**(request_options&.additional_headers || {})
|
122
|
+
}.compact
|
123
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
124
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
125
|
+
end
|
126
|
+
req.body = {
|
127
|
+
**(request_options&.additional_body_parameters || {}),
|
128
|
+
description: description,
|
129
|
+
email: email,
|
130
|
+
name: name,
|
131
|
+
tags: tags,
|
132
|
+
id: id
|
133
|
+
}.compact
|
134
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
135
|
+
end
|
136
|
+
Pinnacle::Types::UpdatedContactId.from_json(json_object: response.body)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class AsyncContactsClient
|
141
|
+
# @return [Pinnacle::AsyncRequestClient]
|
142
|
+
attr_reader :request_client
|
143
|
+
|
144
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
145
|
+
# @return [Pinnacle::AsyncContactsClient]
|
146
|
+
def initialize(request_client:)
|
147
|
+
@request_client = request_client
|
148
|
+
end
|
149
|
+
|
150
|
+
# Retrieve contact information for a given number.
|
151
|
+
#
|
152
|
+
# @param id [Integer] Unique identifier of a specific contact you want to retrieve. <br>
|
153
|
+
# Either this parameter or `phoneNumber` must be provided, but not both.
|
154
|
+
# @param phone_number [String] Phone number you want to look up contact information for, provided in
|
155
|
+
# URL-encoded E.164 format with %2B prefix instead of +.
|
156
|
+
# @param request_options [Pinnacle::RequestOptions]
|
157
|
+
# @return [Pinnacle::Types::Contact]
|
158
|
+
# @example
|
159
|
+
# api = Pinnacle::Client.new(
|
160
|
+
# base_url: "https://api.example.com",
|
161
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
162
|
+
# api_key: "YOUR_API_KEY"
|
163
|
+
# )
|
164
|
+
# api.contacts.get
|
165
|
+
def get(id: nil, phone_number: nil, request_options: nil)
|
166
|
+
Async do
|
167
|
+
response = @request_client.conn.get do |req|
|
168
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
169
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
170
|
+
req.headers = {
|
171
|
+
**(req.headers || {}),
|
172
|
+
**@request_client.get_headers,
|
173
|
+
**(request_options&.additional_headers || {})
|
174
|
+
}.compact
|
175
|
+
req.params = {
|
176
|
+
**(request_options&.additional_query_parameters || {}),
|
177
|
+
"id": id,
|
178
|
+
"phoneNumber": phone_number
|
179
|
+
}.compact
|
180
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
181
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
182
|
+
end
|
183
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
184
|
+
end
|
185
|
+
Pinnacle::Types::Contact.from_json(json_object: response.body)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
# Create a new contact for a given phone number.
|
190
|
+
#
|
191
|
+
# @param description [String] New notes or details for your contact.
|
192
|
+
# @param email [String] New email address for your contact.
|
193
|
+
# @param name [String] New name for your contact.
|
194
|
+
# @param tags [Array<String>] New tags for your contact.
|
195
|
+
# @param phone_number [String] Phone number to save for your contact, in E.164 format.
|
196
|
+
# @param request_options [Pinnacle::RequestOptions]
|
197
|
+
# @return [Pinnacle::Types::ContactId]
|
198
|
+
# @example
|
199
|
+
# api = Pinnacle::Client.new(
|
200
|
+
# base_url: "https://api.example.com",
|
201
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
202
|
+
# api_key: "YOUR_API_KEY"
|
203
|
+
# )
|
204
|
+
# api.contacts.create(phone_number: "phoneNumber")
|
205
|
+
def create(phone_number:, description: nil, email: nil, name: nil, tags: nil, request_options: nil)
|
206
|
+
Async do
|
207
|
+
response = @request_client.conn.post do |req|
|
208
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
209
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
210
|
+
req.headers = {
|
211
|
+
**(req.headers || {}),
|
212
|
+
**@request_client.get_headers,
|
213
|
+
**(request_options&.additional_headers || {})
|
214
|
+
}.compact
|
215
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
216
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
217
|
+
end
|
218
|
+
req.body = {
|
219
|
+
**(request_options&.additional_body_parameters || {}),
|
220
|
+
description: description,
|
221
|
+
email: email,
|
222
|
+
name: name,
|
223
|
+
tags: tags,
|
224
|
+
phoneNumber: phone_number
|
225
|
+
}.compact
|
226
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
227
|
+
end
|
228
|
+
Pinnacle::Types::ContactId.from_json(json_object: response.body)
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
# Update an existing contact.
|
233
|
+
#
|
234
|
+
# @param description [String] New notes or details for your contact.
|
235
|
+
# @param email [String] New email address for your contact.
|
236
|
+
# @param name [String] New name for your contact.
|
237
|
+
# @param tags [Array<String>] New tags for your contact.
|
238
|
+
# @param id [Integer] ID of the contact you want to update.
|
239
|
+
# @param request_options [Pinnacle::RequestOptions]
|
240
|
+
# @return [Pinnacle::Types::UpdatedContactId]
|
241
|
+
# @example
|
242
|
+
# api = Pinnacle::Client.new(
|
243
|
+
# base_url: "https://api.example.com",
|
244
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
245
|
+
# api_key: "YOUR_API_KEY"
|
246
|
+
# )
|
247
|
+
# api.contacts.update(id: 137)
|
248
|
+
def update(id:, description: nil, email: nil, name: nil, tags: nil, request_options: nil)
|
249
|
+
Async do
|
250
|
+
response = @request_client.conn.put do |req|
|
251
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
252
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
253
|
+
req.headers = {
|
254
|
+
**(req.headers || {}),
|
255
|
+
**@request_client.get_headers,
|
256
|
+
**(request_options&.additional_headers || {})
|
257
|
+
}.compact
|
258
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
259
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
260
|
+
end
|
261
|
+
req.body = {
|
262
|
+
**(request_options&.additional_body_parameters || {}),
|
263
|
+
description: description,
|
264
|
+
email: email,
|
265
|
+
name: name,
|
266
|
+
tags: tags,
|
267
|
+
id: id
|
268
|
+
}.compact
|
269
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/contacts"
|
270
|
+
end
|
271
|
+
Pinnacle::Types::UpdatedContactId.from_json(json_object: response.body)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
end
|
@@ -0,0 +1,273 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "../types/get_conversation_params"
|
5
|
+
require_relative "../types/conversation"
|
6
|
+
require_relative "../types/campaign_enum"
|
7
|
+
require_relative "../types/conversation_list"
|
8
|
+
require_relative "../types/successful_conversation_update"
|
9
|
+
require "async"
|
10
|
+
|
11
|
+
module Pinnacle
|
12
|
+
class ConversationsClient
|
13
|
+
# @return [Pinnacle::RequestClient]
|
14
|
+
attr_reader :request_client
|
15
|
+
|
16
|
+
# @param request_client [Pinnacle::RequestClient]
|
17
|
+
# @return [Pinnacle::ConversationsClient]
|
18
|
+
def initialize(request_client:)
|
19
|
+
@request_client = request_client
|
20
|
+
end
|
21
|
+
|
22
|
+
# Fetch a specific conversation using either its unique identifier or by matching
|
23
|
+
# sender and recipient details.
|
24
|
+
#
|
25
|
+
# @param request [Pinnacle::Types::GetConversationRequestId, Pinnacle::Types::GetConversationRequestRecipient]
|
26
|
+
# @param request_options [Pinnacle::RequestOptions]
|
27
|
+
# @return [Pinnacle::Types::Conversation]
|
28
|
+
# @example
|
29
|
+
# api = Pinnacle::Client.new(
|
30
|
+
# base_url: "https://api.example.com",
|
31
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
32
|
+
# api_key: "YOUR_API_KEY"
|
33
|
+
# )
|
34
|
+
# api.conversations.get(request: { id: 1 })
|
35
|
+
def get(request:, request_options: nil)
|
36
|
+
response = @request_client.conn.post do |req|
|
37
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
38
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
39
|
+
req.headers = {
|
40
|
+
**(req.headers || {}),
|
41
|
+
**@request_client.get_headers,
|
42
|
+
**(request_options&.additional_headers || {})
|
43
|
+
}.compact
|
44
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
45
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
46
|
+
end
|
47
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
48
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/get"
|
49
|
+
end
|
50
|
+
Pinnacle::Types::Conversation.from_json(json_object: response.body)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Retrieves conversations by page with optional filtering based off provided
|
54
|
+
# parameters.
|
55
|
+
#
|
56
|
+
# @param brand_id [Integer] The unique identifier of the brand to filter conversations.
|
57
|
+
# @param campaign_id [Integer] The unique identifier of the campaign to filter conversations.
|
58
|
+
# @param campaign_type [Pinnacle::Types::CampaignEnum]
|
59
|
+
# @param page_index [Integer] Zero-based index for pagination.
|
60
|
+
# @param page_size [Integer] Number of conversations to return per page.
|
61
|
+
# @param receiver [String] Receiver's phone number in E.164 format.
|
62
|
+
# @param sender [String]
|
63
|
+
# @param request_options [Pinnacle::RequestOptions]
|
64
|
+
# @return [Pinnacle::Types::ConversationList]
|
65
|
+
# @example
|
66
|
+
# api = Pinnacle::Client.new(
|
67
|
+
# base_url: "https://api.example.com",
|
68
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
69
|
+
# api_key: "YOUR_API_KEY"
|
70
|
+
# )
|
71
|
+
# api.conversations.list(
|
72
|
+
# brand_id: 101,
|
73
|
+
# campaign_id: 136,
|
74
|
+
# campaign_type: TOLL_FREE,
|
75
|
+
# page_index: 0,
|
76
|
+
# page_size: 20,
|
77
|
+
# receiver: "+16509231662",
|
78
|
+
# sender: "+18445551234"
|
79
|
+
# )
|
80
|
+
def list(page_index:, brand_id: nil, campaign_id: nil, campaign_type: nil, page_size: nil, receiver: nil,
|
81
|
+
sender: nil, request_options: nil)
|
82
|
+
response = @request_client.conn.post do |req|
|
83
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
84
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
85
|
+
req.headers = {
|
86
|
+
**(req.headers || {}),
|
87
|
+
**@request_client.get_headers,
|
88
|
+
**(request_options&.additional_headers || {})
|
89
|
+
}.compact
|
90
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
91
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
92
|
+
end
|
93
|
+
req.body = {
|
94
|
+
**(request_options&.additional_body_parameters || {}),
|
95
|
+
brandId: brand_id,
|
96
|
+
campaignId: campaign_id,
|
97
|
+
campaignType: campaign_type,
|
98
|
+
pageIndex: page_index,
|
99
|
+
pageSize: page_size,
|
100
|
+
receiver: receiver,
|
101
|
+
sender: sender
|
102
|
+
}.compact
|
103
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/list"
|
104
|
+
end
|
105
|
+
Pinnacle::Types::ConversationList.from_json(json_object: response.body)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Update the notes associated with a specific conversation.
|
109
|
+
#
|
110
|
+
# @param id [Integer] The unique identifier of the conversation to update.
|
111
|
+
# @param notes [String] New notes or comments for the conversation.
|
112
|
+
# @param request_options [Pinnacle::RequestOptions]
|
113
|
+
# @return [Pinnacle::Types::SuccessfulConversationUpdate]
|
114
|
+
# @example
|
115
|
+
# api = Pinnacle::Client.new(
|
116
|
+
# base_url: "https://api.example.com",
|
117
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
118
|
+
# api_key: "YOUR_API_KEY"
|
119
|
+
# )
|
120
|
+
# api.conversations.update(id: 123, notes: "Follow-up completed. Customer satisfied with resolution.")
|
121
|
+
def update(id:, notes:, request_options: nil)
|
122
|
+
response = @request_client.conn.post do |req|
|
123
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
124
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
125
|
+
req.headers = {
|
126
|
+
**(req.headers || {}),
|
127
|
+
**@request_client.get_headers,
|
128
|
+
**(request_options&.additional_headers || {})
|
129
|
+
}.compact
|
130
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
131
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
132
|
+
end
|
133
|
+
req.body = { **(request_options&.additional_body_parameters || {}), id: id, notes: notes }.compact
|
134
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/update"
|
135
|
+
end
|
136
|
+
Pinnacle::Types::SuccessfulConversationUpdate.from_json(json_object: response.body)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class AsyncConversationsClient
|
141
|
+
# @return [Pinnacle::AsyncRequestClient]
|
142
|
+
attr_reader :request_client
|
143
|
+
|
144
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
145
|
+
# @return [Pinnacle::AsyncConversationsClient]
|
146
|
+
def initialize(request_client:)
|
147
|
+
@request_client = request_client
|
148
|
+
end
|
149
|
+
|
150
|
+
# Fetch a specific conversation using either its unique identifier or by matching
|
151
|
+
# sender and recipient details.
|
152
|
+
#
|
153
|
+
# @param request [Pinnacle::Types::GetConversationRequestId, Pinnacle::Types::GetConversationRequestRecipient]
|
154
|
+
# @param request_options [Pinnacle::RequestOptions]
|
155
|
+
# @return [Pinnacle::Types::Conversation]
|
156
|
+
# @example
|
157
|
+
# api = Pinnacle::Client.new(
|
158
|
+
# base_url: "https://api.example.com",
|
159
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
160
|
+
# api_key: "YOUR_API_KEY"
|
161
|
+
# )
|
162
|
+
# api.conversations.get(request: { id: 1 })
|
163
|
+
def get(request:, request_options: nil)
|
164
|
+
Async do
|
165
|
+
response = @request_client.conn.post do |req|
|
166
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
167
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
168
|
+
req.headers = {
|
169
|
+
**(req.headers || {}),
|
170
|
+
**@request_client.get_headers,
|
171
|
+
**(request_options&.additional_headers || {})
|
172
|
+
}.compact
|
173
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
174
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
175
|
+
end
|
176
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
177
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/get"
|
178
|
+
end
|
179
|
+
Pinnacle::Types::Conversation.from_json(json_object: response.body)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
# Retrieves conversations by page with optional filtering based off provided
|
184
|
+
# parameters.
|
185
|
+
#
|
186
|
+
# @param brand_id [Integer] The unique identifier of the brand to filter conversations.
|
187
|
+
# @param campaign_id [Integer] The unique identifier of the campaign to filter conversations.
|
188
|
+
# @param campaign_type [Pinnacle::Types::CampaignEnum]
|
189
|
+
# @param page_index [Integer] Zero-based index for pagination.
|
190
|
+
# @param page_size [Integer] Number of conversations to return per page.
|
191
|
+
# @param receiver [String] Receiver's phone number in E.164 format.
|
192
|
+
# @param sender [String]
|
193
|
+
# @param request_options [Pinnacle::RequestOptions]
|
194
|
+
# @return [Pinnacle::Types::ConversationList]
|
195
|
+
# @example
|
196
|
+
# api = Pinnacle::Client.new(
|
197
|
+
# base_url: "https://api.example.com",
|
198
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
199
|
+
# api_key: "YOUR_API_KEY"
|
200
|
+
# )
|
201
|
+
# api.conversations.list(
|
202
|
+
# brand_id: 101,
|
203
|
+
# campaign_id: 136,
|
204
|
+
# campaign_type: TOLL_FREE,
|
205
|
+
# page_index: 0,
|
206
|
+
# page_size: 20,
|
207
|
+
# receiver: "+16509231662",
|
208
|
+
# sender: "+18445551234"
|
209
|
+
# )
|
210
|
+
def list(page_index:, brand_id: nil, campaign_id: nil, campaign_type: nil, page_size: nil, receiver: nil,
|
211
|
+
sender: nil, request_options: nil)
|
212
|
+
Async do
|
213
|
+
response = @request_client.conn.post do |req|
|
214
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
215
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
216
|
+
req.headers = {
|
217
|
+
**(req.headers || {}),
|
218
|
+
**@request_client.get_headers,
|
219
|
+
**(request_options&.additional_headers || {})
|
220
|
+
}.compact
|
221
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
222
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
223
|
+
end
|
224
|
+
req.body = {
|
225
|
+
**(request_options&.additional_body_parameters || {}),
|
226
|
+
brandId: brand_id,
|
227
|
+
campaignId: campaign_id,
|
228
|
+
campaignType: campaign_type,
|
229
|
+
pageIndex: page_index,
|
230
|
+
pageSize: page_size,
|
231
|
+
receiver: receiver,
|
232
|
+
sender: sender
|
233
|
+
}.compact
|
234
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/list"
|
235
|
+
end
|
236
|
+
Pinnacle::Types::ConversationList.from_json(json_object: response.body)
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
# Update the notes associated with a specific conversation.
|
241
|
+
#
|
242
|
+
# @param id [Integer] The unique identifier of the conversation to update.
|
243
|
+
# @param notes [String] New notes or comments for the conversation.
|
244
|
+
# @param request_options [Pinnacle::RequestOptions]
|
245
|
+
# @return [Pinnacle::Types::SuccessfulConversationUpdate]
|
246
|
+
# @example
|
247
|
+
# api = Pinnacle::Client.new(
|
248
|
+
# base_url: "https://api.example.com",
|
249
|
+
# environment: Pinnacle::Environment::DEFAULT,
|
250
|
+
# api_key: "YOUR_API_KEY"
|
251
|
+
# )
|
252
|
+
# api.conversations.update(id: 123, notes: "Follow-up completed. Customer satisfied with resolution.")
|
253
|
+
def update(id:, notes:, request_options: nil)
|
254
|
+
Async do
|
255
|
+
response = @request_client.conn.post do |req|
|
256
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
257
|
+
req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
|
258
|
+
req.headers = {
|
259
|
+
**(req.headers || {}),
|
260
|
+
**@request_client.get_headers,
|
261
|
+
**(request_options&.additional_headers || {})
|
262
|
+
}.compact
|
263
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
264
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
265
|
+
end
|
266
|
+
req.body = { **(request_options&.additional_body_parameters || {}), id: id, notes: notes }.compact
|
267
|
+
req.url "#{@request_client.get_url(request_options: request_options)}/conversations/update"
|
268
|
+
end
|
269
|
+
Pinnacle::Types::SuccessfulConversationUpdate.from_json(json_object: response.body)
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
273
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../requests"
|
4
|
+
require_relative "sms/client"
|
5
|
+
|
6
|
+
module Pinnacle
|
7
|
+
module Message
|
8
|
+
class Client
|
9
|
+
# @return [Pinnacle::Message::SmsClient]
|
10
|
+
attr_reader :sms
|
11
|
+
|
12
|
+
# @param request_client [Pinnacle::RequestClient]
|
13
|
+
# @return [Pinnacle::Message::Client]
|
14
|
+
def initialize(request_client:)
|
15
|
+
@sms = Pinnacle::Message::SmsClient.new(request_client: request_client)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class AsyncClient
|
20
|
+
# @return [Pinnacle::Message::AsyncSmsClient]
|
21
|
+
attr_reader :sms
|
22
|
+
|
23
|
+
# @param request_client [Pinnacle::AsyncRequestClient]
|
24
|
+
# @return [Pinnacle::Message::AsyncClient]
|
25
|
+
def initialize(request_client:)
|
26
|
+
@sms = Pinnacle::Message::AsyncSmsClient.new(request_client: request_client)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|