trycourier 1.10.0 → 3.0.0.pre.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +121 -0
- data/lib/trycourier/audiences/client.rb +235 -0
- data/lib/trycourier/audiences/types/audience.rb +86 -0
- data/lib/trycourier/audiences/types/audience_list_response.rb +62 -0
- data/lib/trycourier/audiences/types/audience_member.rb +74 -0
- data/lib/trycourier/audiences/types/audience_member_get_response.rb +53 -0
- data/lib/trycourier/audiences/types/audience_member_list_response.rb +62 -0
- data/lib/trycourier/audiences/types/audience_update_response.rb +53 -0
- data/lib/trycourier/audiences/types/base_filter_config.rb +53 -0
- data/lib/trycourier/audiences/types/comparison_operator.rb +21 -0
- data/lib/trycourier/audiences/types/filter.rb +50 -0
- data/lib/trycourier/audiences/types/filter_config.rb +50 -0
- data/lib/trycourier/audiences/types/logical_operator.rb +10 -0
- data/lib/trycourier/audiences/types/nested_filter_config.rb +63 -0
- data/lib/trycourier/audiences/types/operator.rb +48 -0
- data/lib/trycourier/audiences/types/single_filter_config.rb +64 -0
- data/lib/trycourier/audit_events/client.rb +104 -0
- data/lib/trycourier/audit_events/types/actor.rb +52 -0
- data/lib/trycourier/audit_events/types/audit_event.rb +92 -0
- data/lib/trycourier/audit_events/types/get_audit_event_params.rb +47 -0
- data/lib/trycourier/audit_events/types/list_audit_events_params.rb +47 -0
- data/lib/trycourier/audit_events/types/list_audit_events_response.rb +62 -0
- data/lib/trycourier/audit_events/types/target.rb +52 -0
- data/lib/trycourier/auth_tokens/client.rb +85 -0
- data/lib/trycourier/auth_tokens/types/issue_token_response.rb +47 -0
- data/lib/trycourier/automations/client.rb +151 -0
- data/lib/trycourier/automations/types/automation.rb +56 -0
- data/lib/trycourier/automations/types/automation_ad_hoc_invoke_params.rb +88 -0
- data/lib/trycourier/automations/types/automation_cancel_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_delay_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_invoke_params.rb +69 -0
- data/lib/trycourier/automations/types/automation_invoke_response.rb +47 -0
- data/lib/trycourier/automations/types/automation_invoke_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_invoke_template_params.rb +82 -0
- data/lib/trycourier/automations/types/automation_run_context.rb +69 -0
- data/lib/trycourier/automations/types/automation_send_list_step.rb +93 -0
- data/lib/trycourier/automations/types/automation_send_step.rb +99 -0
- data/lib/trycourier/automations/types/automation_step.rb +52 -0
- data/lib/trycourier/automations/types/automation_step_action.rb +14 -0
- data/lib/trycourier/automations/types/automation_step_option.rb +110 -0
- data/lib/trycourier/automations/types/automation_update_profile_step.rb +64 -0
- data/lib/trycourier/automations/types/automation_v_2_send_step.rb +68 -0
- data/lib/trycourier/automations/types/merge_algorithm.rb +12 -0
- data/lib/trycourier/automations/types/profile.rb +7 -0
- data/lib/trycourier/brands/client.rb +281 -0
- data/lib/trycourier/brands/types/brand.rb +105 -0
- data/lib/trycourier/brands/types/brand_colors.rb +57 -0
- data/lib/trycourier/brands/types/brand_get_all_response.rb +62 -0
- data/lib/trycourier/brands/types/brand_parameters.rb +74 -0
- data/lib/trycourier/brands/types/brand_settings.rb +69 -0
- data/lib/trycourier/brands/types/brand_snippet.rb +57 -0
- data/lib/trycourier/brands/types/brand_snippets.rb +51 -0
- data/lib/trycourier/brands/types/brands_response.rb +62 -0
- data/lib/trycourier/bulk/client.rb +249 -0
- data/lib/trycourier/bulk/types/bulk_create_job_response.rb +47 -0
- data/lib/trycourier/bulk/types/bulk_get_job_params.rb +47 -0
- data/lib/trycourier/bulk/types/bulk_get_job_response.rb +53 -0
- data/lib/trycourier/bulk/types/bulk_get_job_users_params.rb +52 -0
- data/lib/trycourier/bulk/types/bulk_get_job_users_response.rb +62 -0
- data/lib/trycourier/bulk/types/bulk_ingest_error.rb +52 -0
- data/lib/trycourier/bulk/types/bulk_ingest_users_params.rb +51 -0
- data/lib/trycourier/bulk/types/bulk_ingest_users_response.rb +56 -0
- data/lib/trycourier/bulk/types/bulk_job_status.rb +12 -0
- data/lib/trycourier/bulk/types/bulk_job_user_status.rb +11 -0
- data/lib/trycourier/bulk/types/bulk_message_user_response.rb +100 -0
- data/lib/trycourier/bulk/types/inbound_bulk_content_message.rb +165 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message.rb +95 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_user.rb +80 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_v_1.rb +75 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_v_2.rb +50 -0
- data/lib/trycourier/bulk/types/inbound_bulk_template_message.rb +157 -0
- data/lib/trycourier/bulk/types/job_details.rb +81 -0
- data/lib/trycourier/commons/types/already_exists.rb +52 -0
- data/lib/trycourier/commons/types/bad_request.rb +52 -0
- data/lib/trycourier/commons/types/base_error.rb +47 -0
- data/lib/trycourier/commons/types/channel_classification.rb +14 -0
- data/lib/trycourier/commons/types/channel_preference.rb +48 -0
- data/lib/trycourier/commons/types/conflict.rb +52 -0
- data/lib/trycourier/commons/types/email.rb +52 -0
- data/lib/trycourier/commons/types/message_not_found.rb +52 -0
- data/lib/trycourier/commons/types/not_found.rb +52 -0
- data/lib/trycourier/commons/types/notification_preference_details.rb +66 -0
- data/lib/trycourier/commons/types/notification_preferences.rb +7 -0
- data/lib/trycourier/commons/types/paging.rb +52 -0
- data/lib/trycourier/commons/types/payment_required.rb +52 -0
- data/lib/trycourier/commons/types/preference_status.rb +11 -0
- data/lib/trycourier/commons/types/recipient_preferences.rb +53 -0
- data/lib/trycourier/commons/types/rule.rb +52 -0
- data/lib/trycourier/commons/types/user_tenant_association.rb +62 -0
- data/lib/trycourier/lists/client.rb +454 -0
- data/lib/trycourier/lists/types/list.rb +62 -0
- data/lib/trycourier/lists/types/list_get_all_response.rb +62 -0
- data/lib/trycourier/lists/types/list_get_subscriptions_response.rb +62 -0
- data/lib/trycourier/lists/types/list_put_params.rb +58 -0
- data/lib/trycourier/lists/types/list_subscription_recipient.rb +63 -0
- data/lib/trycourier/lists/types/put_subscriptions_recipient.rb +58 -0
- data/lib/trycourier/messages/client.rb +300 -0
- data/lib/trycourier/messages/types/list_messages_response.rb +62 -0
- data/lib/trycourier/messages/types/message_details.rb +120 -0
- data/lib/trycourier/messages/types/message_history_response.rb +51 -0
- data/lib/trycourier/messages/types/message_status.rb +17 -0
- data/lib/trycourier/messages/types/reason.rb +14 -0
- data/lib/trycourier/messages/types/render_output.rb +63 -0
- data/lib/trycourier/messages/types/render_output_response.rb +51 -0
- data/lib/trycourier/messages/types/rendered_message_block.rb +52 -0
- data/lib/trycourier/messages/types/rendered_message_content.rb +77 -0
- data/lib/trycourier/notifications/client.rb +379 -0
- data/lib/trycourier/notifications/types/base_check.rb +58 -0
- data/lib/trycourier/notifications/types/block_type.rb +17 -0
- data/lib/trycourier/notifications/types/check.rb +63 -0
- data/lib/trycourier/notifications/types/check_status.rb +11 -0
- data/lib/trycourier/notifications/types/message_routing.rb +57 -0
- data/lib/trycourier/notifications/types/message_routing_channel.rb +49 -0
- data/lib/trycourier/notifications/types/message_routing_method.rb +10 -0
- data/lib/trycourier/notifications/types/notification.rb +63 -0
- data/lib/trycourier/notifications/types/notification_block.rb +94 -0
- data/lib/trycourier/notifications/types/notification_channel.rb +73 -0
- data/lib/trycourier/notifications/types/notification_channel_content.rb +52 -0
- data/lib/trycourier/notifications/types/notification_content.rb +49 -0
- data/lib/trycourier/notifications/types/notification_content_hierarchy.rb +52 -0
- data/lib/trycourier/notifications/types/notification_get_content_response.rb +65 -0
- data/lib/trycourier/notifications/types/notification_list_response.rb +62 -0
- data/lib/trycourier/notifications/types/submission_checks_get_response.rb +51 -0
- data/lib/trycourier/notifications/types/submission_checks_replace_response.rb +51 -0
- data/lib/trycourier/profiles/client.rb +325 -0
- data/lib/trycourier/profiles/types/address.rb +81 -0
- data/lib/trycourier/profiles/types/airship_profile.rb +59 -0
- data/lib/trycourier/profiles/types/airship_profile_audience.rb +47 -0
- data/lib/trycourier/profiles/types/delete_list_subscription_response.rb +47 -0
- data/lib/trycourier/profiles/types/device_type.rb +7 -0
- data/lib/trycourier/profiles/types/discord.rb +50 -0
- data/lib/trycourier/profiles/types/expo.rb +50 -0
- data/lib/trycourier/profiles/types/get_list_subscriptions_list.rb +74 -0
- data/lib/trycourier/profiles/types/get_list_subscriptions_response.rb +62 -0
- data/lib/trycourier/profiles/types/intercom.rb +58 -0
- data/lib/trycourier/profiles/types/intercom_recipient.rb +47 -0
- data/lib/trycourier/profiles/types/merge_profile_response.rb +47 -0
- data/lib/trycourier/profiles/types/ms_teams.rb +86 -0
- data/lib/trycourier/profiles/types/ms_teams_base_properties.rb +52 -0
- data/lib/trycourier/profiles/types/multiple_tokens.rb +51 -0
- data/lib/trycourier/profiles/types/profile_get_parameters.rb +47 -0
- data/lib/trycourier/profiles/types/profile_get_response.rb +58 -0
- data/lib/trycourier/profiles/types/replace_profile_response.rb +47 -0
- data/lib/trycourier/profiles/types/send_direct_message.rb +47 -0
- data/lib/trycourier/profiles/types/send_to_channel.rb +47 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_channel_id.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_channel_name.rb +68 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_conversation_id.rb +58 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_email.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_user_id.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_slack_channel.rb +52 -0
- data/lib/trycourier/profiles/types/send_to_slack_email.rb +52 -0
- data/lib/trycourier/profiles/types/send_to_slack_user_id.rb +52 -0
- data/lib/trycourier/profiles/types/slack.rb +62 -0
- data/lib/trycourier/profiles/types/slack_base_properties.rb +47 -0
- data/lib/trycourier/profiles/types/snooze_rule.rb +58 -0
- data/lib/trycourier/profiles/types/snooze_rule_type.rb +9 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_request.rb +51 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_request_list_object.rb +58 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_response.rb +47 -0
- data/lib/trycourier/profiles/types/token.rb +47 -0
- data/lib/trycourier/profiles/types/user_profile.rb +274 -0
- data/lib/trycourier/send/types/attachment.rb +7 -0
- data/lib/trycourier/send/types/audience_filter.rb +57 -0
- data/lib/trycourier/send/types/audience_recipient.rb +62 -0
- data/lib/trycourier/send/types/base_message.rb +149 -0
- data/lib/trycourier/send/types/base_social_presence.rb +47 -0
- data/lib/trycourier/send/types/brand_settings_email.rb +87 -0
- data/lib/trycourier/send/types/brand_settings_in_app.rb +119 -0
- data/lib/trycourier/send/types/brand_settings_social_presence.rb +107 -0
- data/lib/trycourier/send/types/brand_template.rb +88 -0
- data/lib/trycourier/send/types/brand_template_override.rb +112 -0
- data/lib/trycourier/send/types/channel.rb +113 -0
- data/lib/trycourier/send/types/channel_metadata.rb +53 -0
- data/lib/trycourier/send/types/channel_source.rb +11 -0
- data/lib/trycourier/send/types/content.rb +50 -0
- data/lib/trycourier/send/types/content_message.rb +177 -0
- data/lib/trycourier/send/types/criteria.rb +12 -0
- data/lib/trycourier/send/types/delay.rb +47 -0
- data/lib/trycourier/send/types/elemental_action_node.rb +116 -0
- data/lib/trycourier/send/types/elemental_base_node.rb +62 -0
- data/lib/trycourier/send/types/elemental_channel_node.rb +105 -0
- data/lib/trycourier/send/types/elemental_content.rb +61 -0
- data/lib/trycourier/send/types/elemental_content_sugar.rb +53 -0
- data/lib/trycourier/send/types/elemental_divider_node.rb +68 -0
- data/lib/trycourier/send/types/elemental_group_node.rb +72 -0
- data/lib/trycourier/send/types/elemental_image_node.rb +101 -0
- data/lib/trycourier/send/types/elemental_meta_node.rb +70 -0
- data/lib/trycourier/send/types/elemental_node.rb +170 -0
- data/lib/trycourier/send/types/elemental_quote_node.rb +104 -0
- data/lib/trycourier/send/types/elemental_text_node.rb +136 -0
- data/lib/trycourier/send/types/email_footer.rb +52 -0
- data/lib/trycourier/send/types/email_head.rb +52 -0
- data/lib/trycourier/send/types/email_header.rb +63 -0
- data/lib/trycourier/send/types/expires_in_type.rb +48 -0
- data/lib/trycourier/send/types/expiry.rb +58 -0
- data/lib/trycourier/send/types/i_action_button_style.rb +10 -0
- data/lib/trycourier/send/types/i_alignment.rb +12 -0
- data/lib/trycourier/send/types/i_preferences.rb +7 -0
- data/lib/trycourier/send/types/i_profile_preferences.rb +59 -0
- data/lib/trycourier/send/types/icons.rb +52 -0
- data/lib/trycourier/send/types/in_app_placement.rb +12 -0
- data/lib/trycourier/send/types/invalid_list_pattern_recipient.rb +52 -0
- data/lib/trycourier/send/types/invalid_list_recipient.rb +52 -0
- data/lib/trycourier/send/types/invalid_user_recipient.rb +52 -0
- data/lib/trycourier/send/types/list_filter.rb +57 -0
- data/lib/trycourier/send/types/list_pattern_recipient.rb +53 -0
- data/lib/trycourier/send/types/list_pattern_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/list_recipient.rb +62 -0
- data/lib/trycourier/send/types/list_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/locale.rb +47 -0
- data/lib/trycourier/send/types/locales.rb +7 -0
- data/lib/trycourier/send/types/logo.rb +52 -0
- data/lib/trycourier/send/types/message.rb +50 -0
- data/lib/trycourier/send/types/message_channel_email_override.rb +119 -0
- data/lib/trycourier/send/types/message_channels.rb +7 -0
- data/lib/trycourier/send/types/message_context.rb +49 -0
- data/lib/trycourier/send/types/message_data.rb +7 -0
- data/lib/trycourier/send/types/message_metadata.rb +68 -0
- data/lib/trycourier/send/types/message_providers.rb +7 -0
- data/lib/trycourier/send/types/message_providers_type.rb +72 -0
- data/lib/trycourier/send/types/message_recipient.rb +54 -0
- data/lib/trycourier/send/types/metadata.rb +53 -0
- data/lib/trycourier/send/types/ms_teams_recipient.rb +53 -0
- data/lib/trycourier/send/types/override.rb +10 -0
- data/lib/trycourier/send/types/preference.rb +73 -0
- data/lib/trycourier/send/types/preferences.rb +47 -0
- data/lib/trycourier/send/types/recipient.rb +98 -0
- data/lib/trycourier/send/types/routing.rb +64 -0
- data/lib/trycourier/send/types/routing_channel.rb +61 -0
- data/lib/trycourier/send/types/routing_method.rb +10 -0
- data/lib/trycourier/send/types/routing_strategy_channel.rb +70 -0
- data/lib/trycourier/send/types/routing_strategy_provider.rb +68 -0
- data/lib/trycourier/send/types/rule_type.rb +11 -0
- data/lib/trycourier/send/types/slack_recipient.rb +53 -0
- data/lib/trycourier/send/types/template_message.rb +169 -0
- data/lib/trycourier/send/types/text_align.rb +11 -0
- data/lib/trycourier/send/types/text_style.rb +12 -0
- data/lib/trycourier/send/types/timeout.rb +76 -0
- data/lib/trycourier/send/types/timeouts.rb +52 -0
- data/lib/trycourier/send/types/tracking_override.rb +47 -0
- data/lib/trycourier/send/types/user_recipient.rb +115 -0
- data/lib/trycourier/send/types/user_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/utm.rb +68 -0
- data/lib/trycourier/send/types/widget_background.rb +52 -0
- data/lib/trycourier/templates/client.rb +67 -0
- data/lib/trycourier/templates/types/channel_identifier.rb +7 -0
- data/lib/trycourier/templates/types/list_templates_response.rb +62 -0
- data/lib/trycourier/templates/types/notification_templates.rb +90 -0
- data/lib/trycourier/templates/types/routing_strategy.rb +54 -0
- data/lib/trycourier/templates/types/routing_strategy_method.rb +10 -0
- data/lib/trycourier/templates/types/tag.rb +51 -0
- data/lib/trycourier/templates/types/tag_data.rb +52 -0
- data/lib/trycourier/tenants/client.rb +255 -0
- data/lib/trycourier/tenants/types/default_preferences.rb +51 -0
- data/lib/trycourier/tenants/types/list_users_for_tenant_response.rb +88 -0
- data/lib/trycourier/tenants/types/subscription_topic.rb +53 -0
- data/lib/trycourier/tenants/types/subscription_topic_status.rb +11 -0
- data/lib/trycourier/tenants/types/template_property.rb +7 -0
- data/lib/trycourier/tenants/types/tenant.rb +95 -0
- data/lib/trycourier/tenants/types/tenant_list_response.rb +86 -0
- data/lib/trycourier/translations/client.rb +106 -0
- data/lib/trycourier/types/send_message_response.rb +49 -0
- data/lib/trycourier/users/client.rb +34 -0
- data/lib/trycourier/users/preferences/client.rb +171 -0
- data/lib/trycourier/users/preferences/types/topic_preference.rb +86 -0
- data/lib/trycourier/users/preferences/types/user_preferences_get_response.rb +55 -0
- data/lib/trycourier/users/preferences/types/user_preferences_list_response.rb +64 -0
- data/lib/trycourier/users/preferences/types/user_preferences_update_response.rb +49 -0
- data/lib/trycourier/users/tenants/client.rb +267 -0
- data/lib/trycourier/users/tenants/types/add_user_to_single_tenants_params_profile.rb +76 -0
- data/lib/trycourier/users/tenants/types/list_tenants_for_user_response.rb +90 -0
- data/lib/trycourier/users/tokens/client.rb +264 -0
- data/lib/trycourier/users/tokens/types/delete_user_token_opts.rb +54 -0
- data/lib/trycourier/users/tokens/types/device.rb +83 -0
- data/lib/trycourier/users/tokens/types/expiry_date.rb +50 -0
- data/lib/trycourier/users/tokens/types/get_all_tokens_response.rb +11 -0
- data/lib/trycourier/users/tokens/types/get_user_token_opts.rb +54 -0
- data/lib/trycourier/users/tokens/types/get_user_token_response.rb +116 -0
- data/lib/trycourier/users/tokens/types/get_user_tokens_opts.rb +49 -0
- data/lib/trycourier/users/tokens/types/patch_op.rb +16 -0
- data/lib/trycourier/users/tokens/types/patch_operation.rb +59 -0
- data/lib/trycourier/users/tokens/types/patch_user_token_opts.rb +53 -0
- data/lib/trycourier/users/tokens/types/provider_key.rb +14 -0
- data/lib/trycourier/users/tokens/types/put_user_token_opts.rb +60 -0
- data/lib/trycourier/users/tokens/types/put_user_tokens_opts.rb +58 -0
- data/lib/trycourier/users/tokens/types/token_status.rb +14 -0
- data/lib/trycourier/users/tokens/types/tracking.rb +64 -0
- data/lib/trycourier/users/tokens/types/user_token.rb +102 -0
- data/lib/trycourier.rb +114 -138
- data/lib/types_export.rb +273 -0
- metadata +362 -50
- data/.github/ISSUE_TEMPLATE.md +0 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -27
- data/.github/workflows/gem-push.yml +0 -51
- data/.gitignore +0 -67
- data/.rspec +0 -3
- data/CHANGELOG.md +0 -126
- data/CONTRIBUTING.md +0 -28
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -72
- data/LICENSE +0 -21
- data/README.md +0 -610
- data/Rakefile +0 -7
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/trycourier/accounts.rb +0 -43
- data/lib/trycourier/audiences.rb +0 -45
- data/lib/trycourier/audit_events.rb +0 -27
- data/lib/trycourier/auth_tokens.rb +0 -23
- data/lib/trycourier/automations.rb +0 -67
- data/lib/trycourier/brands.rb +0 -70
- data/lib/trycourier/bulk.rb +0 -79
- data/lib/trycourier/events.rb +0 -35
- data/lib/trycourier/exceptions.rb +0 -39
- data/lib/trycourier/lists.rb +0 -109
- data/lib/trycourier/messages.rb +0 -57
- data/lib/trycourier/profiles.rb +0 -64
- data/lib/trycourier/session.rb +0 -80
- data/lib/trycourier/version.rb +0 -3
- data/trycourier.gemspec +0 -32
data/README.md
DELETED
@@ -1,610 +0,0 @@
|
|
1
|
-
# `trycourier`
|
2
|
-
|
3
|
-
This Gem helps you send notifications through [Courier](https://www.trycourier.com/), the smartest way to design & deliver notifications. Design your notifications once using our drag & drop editor, then deliver to any channel through one API. Email, mobile push, SMS, Slack — you name it!
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
```ruby
|
10
|
-
gem 'trycourier'
|
11
|
-
```
|
12
|
-
|
13
|
-
And then execute:
|
14
|
-
|
15
|
-
$ bundle install
|
16
|
-
|
17
|
-
Or install it yourself as:
|
18
|
-
|
19
|
-
$ gem install trycourier
|
20
|
-
|
21
|
-
## Usage
|
22
|
-
|
23
|
-
After installing, make sure to include this line at the top of your ruby file:
|
24
|
-
|
25
|
-
```ruby
|
26
|
-
require "trycourier"
|
27
|
-
```
|
28
|
-
|
29
|
-
To create a Courier Ruby client, all you need to do is pass in your authentication information. Then, you can start sending!
|
30
|
-
|
31
|
-
### Using token authentication (most secure)
|
32
|
-
|
33
|
-
```ruby
|
34
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var (recommended)
|
35
|
-
```
|
36
|
-
|
37
|
-
### Using basic authentication
|
38
|
-
|
39
|
-
```ruby
|
40
|
-
client = Courier::Client.new(username: "USERNAME", password: "PASSWORD") # or set via COURIER_AUTH_USERNAME and COURIER_AUTH_PASSWORD env vars
|
41
|
-
```
|
42
|
-
|
43
|
-
### Sending a message to an individual recipient
|
44
|
-
|
45
|
-
```ruby
|
46
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
47
|
-
res = client.send_message({
|
48
|
-
"message" => {
|
49
|
-
"to" => {
|
50
|
-
"email" => "foo@bar.com"
|
51
|
-
}
|
52
|
-
"content" => {
|
53
|
-
"title" => "hello {{name}}",
|
54
|
-
"body" => "Welcome to Courier!"
|
55
|
-
},
|
56
|
-
"data" => {
|
57
|
-
"name" => "Ruby"
|
58
|
-
}
|
59
|
-
}
|
60
|
-
})
|
61
|
-
puts res.code # the HTTP response code
|
62
|
-
puts res.request_id # if the code is 202, this will be the Courier request ID for this message
|
63
|
-
rescue Courier::CourierAPIError => re #error sent from from the API
|
64
|
-
puts re.message
|
65
|
-
end
|
66
|
-
```
|
67
|
-
|
68
|
-
```ruby
|
69
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
70
|
-
res = client.send({
|
71
|
-
"event" => "your-event-id",
|
72
|
-
"recipient" => "your-recipient-id",
|
73
|
-
|
74
|
-
"profile" => { #optional (include any key-value pairs required by your chosen integrations. This information can also be stored in the recipient's profile in Courier)
|
75
|
-
"email": "example@example.com",
|
76
|
-
"phone_number": "555-867-5309"
|
77
|
-
},
|
78
|
-
|
79
|
-
"data" => { #any data you want to pass to a message template
|
80
|
-
"world" => "Ruby!"
|
81
|
-
}
|
82
|
-
})
|
83
|
-
puts res.code # the HTTP response code
|
84
|
-
puts res.message_id # if the code is 200, this will be the Courier message ID for this notification
|
85
|
-
rescue Courier::CourierAPIError => re #error sent from from the API
|
86
|
-
puts re.message
|
87
|
-
end
|
88
|
-
```
|
89
|
-
|
90
|
-
### Sending a message to an individual with metadata
|
91
|
-
|
92
|
-
```ruby
|
93
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
94
|
-
res = client.send_message({
|
95
|
-
"message" => {
|
96
|
-
"to" => {
|
97
|
-
"email" => "foo@bar.com"
|
98
|
-
}
|
99
|
-
"content" => {
|
100
|
-
"title" => "hello {{name}}",
|
101
|
-
"body" => "Welcome to Courier!"
|
102
|
-
},
|
103
|
-
"data" => {
|
104
|
-
"name" => "Ruby"
|
105
|
-
},
|
106
|
-
"metadata" => {
|
107
|
-
"utm" => {
|
108
|
-
"source" => "Ruby"
|
109
|
-
},
|
110
|
-
"tags" => ["tag-1", "tag-2"],
|
111
|
-
"trace_id" => "feed-me-hungry"
|
112
|
-
}
|
113
|
-
}
|
114
|
-
})
|
115
|
-
puts res.code # the HTTP response code
|
116
|
-
puts res.request_id # if the code is 202, this will be the Courier request ID for this message
|
117
|
-
rescue Courier::CourierAPIError => re #error sent from from the API
|
118
|
-
puts re.message
|
119
|
-
end
|
120
|
-
```
|
121
|
-
|
122
|
-
### Sending a message to an individual with granular metadata
|
123
|
-
|
124
|
-
```ruby
|
125
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
126
|
-
res = client.send_message({
|
127
|
-
"message" => {
|
128
|
-
"to" => {
|
129
|
-
"email" => "foo@bar.com"
|
130
|
-
},
|
131
|
-
"content" => {
|
132
|
-
"version" => "2020-01-01",
|
133
|
-
"elements" => [
|
134
|
-
{
|
135
|
-
"type" => "text",
|
136
|
-
"content" => "Thanks for signing up, {{name}}"
|
137
|
-
},
|
138
|
-
{
|
139
|
-
"type" => "action",
|
140
|
-
"content" => "Click Me!",
|
141
|
-
"href" => "https://www.example.com"
|
142
|
-
}
|
143
|
-
]
|
144
|
-
},
|
145
|
-
"routing" => {
|
146
|
-
"method" => "all",
|
147
|
-
"channels" => [
|
148
|
-
"email"
|
149
|
-
]
|
150
|
-
},
|
151
|
-
"data" => {
|
152
|
-
"name" => "Ruby"
|
153
|
-
},
|
154
|
-
"metadata" => {
|
155
|
-
"utm" => {
|
156
|
-
"source" => "Ruby"
|
157
|
-
},
|
158
|
-
},
|
159
|
-
"channels" => {
|
160
|
-
"email" => {
|
161
|
-
"routing_method" => "all",
|
162
|
-
"providers" => [
|
163
|
-
"sendgrid",
|
164
|
-
"mailjet"
|
165
|
-
],
|
166
|
-
"metadata" => {
|
167
|
-
"utm" => {
|
168
|
-
"medium" => "email"
|
169
|
-
}
|
170
|
-
}
|
171
|
-
}
|
172
|
-
},
|
173
|
-
"providers" => {
|
174
|
-
"sendgrid" => {
|
175
|
-
"metadata" => {
|
176
|
-
"utm" => {
|
177
|
-
"source" => "sendgrid"
|
178
|
-
}
|
179
|
-
}
|
180
|
-
}
|
181
|
-
}
|
182
|
-
}
|
183
|
-
})
|
184
|
-
puts res.code # the HTTP response code
|
185
|
-
puts res.request_id # if the code is 202, this will be the Courier request ID for this message
|
186
|
-
rescue Courier::CourierAPIError => re #error sent from from the API
|
187
|
-
puts re.message
|
188
|
-
end
|
189
|
-
```
|
190
|
-
|
191
|
-
## Advanced Usage
|
192
|
-
|
193
|
-
### Lists
|
194
|
-
|
195
|
-
```ruby
|
196
|
-
require "trycourier"
|
197
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
198
|
-
|
199
|
-
"""
|
200
|
-
Creating a List
|
201
|
-
"""
|
202
|
-
res = client.lists.put(list_id, name)
|
203
|
-
puts res
|
204
|
-
|
205
|
-
"""
|
206
|
-
Example: send a message to a list
|
207
|
-
"""
|
208
|
-
resp = client.lists.send(
|
209
|
-
event: "your-event-id",
|
210
|
-
list: "your.list.id",
|
211
|
-
brand: "your-brand-id", # optional
|
212
|
-
data: {}, # optional
|
213
|
-
override: {} # optional
|
214
|
-
)
|
215
|
-
puts resp['messageId'])
|
216
|
-
|
217
|
-
"""
|
218
|
-
Example: send a message to a list pattern
|
219
|
-
"""
|
220
|
-
resp = client.lists.send(
|
221
|
-
event: "your-event-id",
|
222
|
-
pattern: "your.list.*", #PATTERN (will send to all list ids that start with "your.list.")
|
223
|
-
brand: "your-brand-id", # optional
|
224
|
-
data: {}, # optional
|
225
|
-
override: {} # optional
|
226
|
-
)
|
227
|
-
puts resp['messageId'])
|
228
|
-
|
229
|
-
"""
|
230
|
-
Example: get all lists
|
231
|
-
"""
|
232
|
-
resp = client.lists.list(
|
233
|
-
cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
|
234
|
-
)
|
235
|
-
puts resp
|
236
|
-
|
237
|
-
"""
|
238
|
-
Example: get a specific list
|
239
|
-
"""
|
240
|
-
resp = client.lists.get(list_id: "your-list-id")
|
241
|
-
puts resp
|
242
|
-
|
243
|
-
|
244
|
-
"""
|
245
|
-
Example: delete a list
|
246
|
-
"""
|
247
|
-
client.lists.delete(list_id: "your-list-id")
|
248
|
-
|
249
|
-
"""
|
250
|
-
Example: restore a list
|
251
|
-
"""
|
252
|
-
client.lists.restore(list_id: "your-list-id")
|
253
|
-
|
254
|
-
"""
|
255
|
-
Example: get a list's subscribptions
|
256
|
-
"""
|
257
|
-
resp = client.lists.get_subscriptions(list_id: "your-list-id",
|
258
|
-
cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
|
259
|
-
)
|
260
|
-
puts resp
|
261
|
-
|
262
|
-
"""
|
263
|
-
Example: replace many recipients to a new or existing list
|
264
|
-
"""
|
265
|
-
client.lists.put_subscriptions(list_id: "your-list-id", recipients: [
|
266
|
-
"RECIPIENT_ID_1",
|
267
|
-
"RECIPIENT_ID_2"
|
268
|
-
])
|
269
|
-
|
270
|
-
"""
|
271
|
-
Example: Example: subscribe single recipient to a new or existing list
|
272
|
-
"""
|
273
|
-
client.lists.subscribe(list_id: "your-list-id", recipient_id: "your-recipient-id")
|
274
|
-
|
275
|
-
"""
|
276
|
-
Example: unsubscribe recipient from list
|
277
|
-
"""
|
278
|
-
client.lists.unsubscribe(list_id: "your-list-id", recipient_id: "your-recipient-id")
|
279
|
-
```
|
280
|
-
|
281
|
-
### Profiles
|
282
|
-
|
283
|
-
```Ruby
|
284
|
-
"""
|
285
|
-
Example: create a recipient's profile
|
286
|
-
"""
|
287
|
-
resp = client.profiles.add(
|
288
|
-
recipient_id: "your-recipient-id",
|
289
|
-
profile: {
|
290
|
-
"email" => "example@example.com",
|
291
|
-
"name" => "Example Name"
|
292
|
-
}
|
293
|
-
)
|
294
|
-
|
295
|
-
"""
|
296
|
-
Example: replace or create a recipient's profile
|
297
|
-
"""
|
298
|
-
resp = client.profiles.replace(
|
299
|
-
recipient_id: "your-recipient-id",
|
300
|
-
profile: {
|
301
|
-
"email" => "example@example.com"
|
302
|
-
}
|
303
|
-
)
|
304
|
-
puts resp['status']
|
305
|
-
|
306
|
-
"""
|
307
|
-
Example: merge or create a recipient's profile
|
308
|
-
"""
|
309
|
-
resp = client.profiles.merge(
|
310
|
-
recipient_id: "your-recipient-id",
|
311
|
-
profile: {
|
312
|
-
"phone_number" => "+15555555555"
|
313
|
-
}
|
314
|
-
)
|
315
|
-
puts resp['status']
|
316
|
-
|
317
|
-
"""
|
318
|
-
Example: get the subscribed lists of a recipient
|
319
|
-
"""
|
320
|
-
resp = client.profiles.get_subscriptions(
|
321
|
-
recipient_id: "your-recipient-id",
|
322
|
-
cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA" #optional
|
323
|
-
)
|
324
|
-
puts resp
|
325
|
-
|
326
|
-
"""
|
327
|
-
Example: edit the contents of a recipient's profile with a patch operation
|
328
|
-
(follows JSON Patch conventions: RFC 6902).
|
329
|
-
"""
|
330
|
-
resp = client.profiles.patch(
|
331
|
-
recipient_id: "your-recipient-id",
|
332
|
-
operations: [
|
333
|
-
{
|
334
|
-
"op" => "add", #operation 1: add this email to profile
|
335
|
-
"path" => "/parent",
|
336
|
-
"value" => "example@example.com"
|
337
|
-
}
|
338
|
-
{
|
339
|
-
"op" => "replace", #operation 2: update with new email
|
340
|
-
"path" => "/parent",
|
341
|
-
"value" => "jane@doe.com"
|
342
|
-
}
|
343
|
-
{
|
344
|
-
"op" => "copy", #operation 3: copy that email to /emergency_contact
|
345
|
-
"from" => "/parent",
|
346
|
-
"path" => "/emergency_contact"
|
347
|
-
}
|
348
|
-
...
|
349
|
-
]
|
350
|
-
)
|
351
|
-
puts resp
|
352
|
-
|
353
|
-
|
354
|
-
"""
|
355
|
-
Example: get a recipient's profile
|
356
|
-
"""
|
357
|
-
resp = client.profiles.get(recipient_id: "your-recipient-id")
|
358
|
-
puts resp
|
359
|
-
```
|
360
|
-
|
361
|
-
### Messages
|
362
|
-
|
363
|
-
```Ruby
|
364
|
-
"""
|
365
|
-
Example: fetch the statuses of messages you've previously sent.
|
366
|
-
"""
|
367
|
-
resp = client.messages.list(
|
368
|
-
cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
|
369
|
-
event: "your-event-id", # optional
|
370
|
-
list: "your-list-id", #optional
|
371
|
-
message_id: "your-message-id" #optional
|
372
|
-
notification: ["message-status-1", "message-status-2",...] #optional
|
373
|
-
recipient: "recipient-id" # optional
|
374
|
-
)
|
375
|
-
puts resp
|
376
|
-
|
377
|
-
"""
|
378
|
-
Example: fetch the status of a message you've previously sent
|
379
|
-
"""
|
380
|
-
resp = client.messages.get(message_id: "your-message-id")
|
381
|
-
puts resp
|
382
|
-
|
383
|
-
"""
|
384
|
-
Example: fetch the array of events of a message you've previously sent.
|
385
|
-
"""
|
386
|
-
resp = client.messages.get_history(
|
387
|
-
message_id: "your-message-id",
|
388
|
-
type: "list-type" #optional ("FILTERED", "RENDERED", "MAPPED", "PROFILE_LOADED")
|
389
|
-
)
|
390
|
-
puts resp
|
391
|
-
```
|
392
|
-
|
393
|
-
### Events
|
394
|
-
|
395
|
-
```Ruby
|
396
|
-
"""
|
397
|
-
Example: fetch the list of events
|
398
|
-
"""
|
399
|
-
resp = client.events.list
|
400
|
-
puts resp
|
401
|
-
|
402
|
-
"""
|
403
|
-
Example: fetch a specific event by event ID
|
404
|
-
"""
|
405
|
-
resp = client.events.get(event_id: "your-event-id")
|
406
|
-
puts resp
|
407
|
-
|
408
|
-
"""
|
409
|
-
Example: create or replace an event
|
410
|
-
"""
|
411
|
-
resp = client.events.replace(
|
412
|
-
event_id: "your-event-id",
|
413
|
-
notification_id: "notification_id",
|
414
|
-
type: "notificaton" ## optional, defaults to notification
|
415
|
-
)
|
416
|
-
puts resp
|
417
|
-
|
418
|
-
"""
|
419
|
-
Example: get all brands
|
420
|
-
"""
|
421
|
-
resp = client.brands.list(
|
422
|
-
cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
|
423
|
-
)
|
424
|
-
puts resp
|
425
|
-
|
426
|
-
"""
|
427
|
-
Example: get a specific brand
|
428
|
-
"""
|
429
|
-
resp = client.brands.get(brand_id: "brand_id")
|
430
|
-
puts resp
|
431
|
-
|
432
|
-
"""
|
433
|
-
Example: create a brand
|
434
|
-
"""
|
435
|
-
resp = client.brands.create(
|
436
|
-
name: "brand-name",
|
437
|
-
settings: {
|
438
|
-
"color" => {
|
439
|
-
"primary" => "#0000FF",
|
440
|
-
"secondary" => "#FF0000",
|
441
|
-
"tertiary" => "#00FF00"
|
442
|
-
}
|
443
|
-
},
|
444
|
-
id: "my-brand-id", #optional
|
445
|
-
snippets: {}, #optional
|
446
|
-
idempotency_key: "my-idemp-key", #optional
|
447
|
-
)
|
448
|
-
puts resp
|
449
|
-
|
450
|
-
"""
|
451
|
-
Example: replace a brand
|
452
|
-
"""
|
453
|
-
resp = client.brands.replace(
|
454
|
-
brand_id: "your-brand-id",
|
455
|
-
name: "brand-name",
|
456
|
-
settings: {}
|
457
|
-
"color" => {
|
458
|
-
"primary" => "#FF0000",
|
459
|
-
"secondary" => "#00FF00",
|
460
|
-
"tertiary" => "#0000FF"
|
461
|
-
}
|
462
|
-
},
|
463
|
-
snippets: {} #optional
|
464
|
-
)
|
465
|
-
puts resp
|
466
|
-
|
467
|
-
"""
|
468
|
-
Example: delete a brand
|
469
|
-
"""
|
470
|
-
resp = client.brands.delete(brand_id: "your-brand-id")
|
471
|
-
puts resp
|
472
|
-
```
|
473
|
-
|
474
|
-
### Automations
|
475
|
-
|
476
|
-
````Ruby
|
477
|
-
"""
|
478
|
-
Example: invoke ad-hoc automation
|
479
|
-
"""
|
480
|
-
steps = [
|
481
|
-
{
|
482
|
-
"action" => "send"
|
483
|
-
}
|
484
|
-
]
|
485
|
-
automation = {
|
486
|
-
"steps" => steps
|
487
|
-
}
|
488
|
-
|
489
|
-
resp = client.automations.invoke(
|
490
|
-
automation: automation,
|
491
|
-
brand: "your-brand-id", # optional
|
492
|
-
data: {}, # optional
|
493
|
-
profile: {
|
494
|
-
"email" => "example@example.com",
|
495
|
-
}, # optional
|
496
|
-
recipient: "your-recipient-id", # optional
|
497
|
-
template: "your-notification-template-id" # optional
|
498
|
-
)
|
499
|
-
puts resp['runId']
|
500
|
-
|
501
|
-
"""
|
502
|
-
Example: invoke automation template
|
503
|
-
"""
|
504
|
-
resp = client.automations.invoke_template(
|
505
|
-
template_id: "your-automation-template-id",
|
506
|
-
brand: "your-brand-id", # optional
|
507
|
-
data: {}, # optional
|
508
|
-
profile: {
|
509
|
-
"email" => "example@example.com",
|
510
|
-
}, # optional
|
511
|
-
recipient: "your-recipient-id", # optional
|
512
|
-
template: "your-notification-template-id" # optional
|
513
|
-
)
|
514
|
-
puts resp['runId']
|
515
|
-
|
516
|
-
### Notes on input and errors
|
517
|
-
With the exception of passing an auth token to create a client, and ```client.send(body)```, every parameter (optional or required) is sent using keyword arguments.
|
518
|
-
In the case of ```client.send(body)```, if the hash does not have the required components, it will throw an InputError exception, which can be caught with rescue blocks:
|
519
|
-
```ruby
|
520
|
-
rescue InputError
|
521
|
-
````
|
522
|
-
|
523
|
-
Any other errors from the API are thrown as a CourierAPIError. Catch these errors by putting this after your method calls:
|
524
|
-
|
525
|
-
```ruby
|
526
|
-
rescue CourierAPIError
|
527
|
-
```
|
528
|
-
|
529
|
-
### Audiences
|
530
|
-
|
531
|
-
List of supported operators for audience filtering: https://www.courier.com/docs/reference/audieces/operators
|
532
|
-
|
533
|
-
```Ruby
|
534
|
-
"""
|
535
|
-
Example: create or update an Audience
|
536
|
-
"""
|
537
|
-
resp = client.audiences.put(
|
538
|
-
audience_id: "your-audience-id",
|
539
|
-
filter: {
|
540
|
-
"operator": "EQ",
|
541
|
-
"value": "en-US",
|
542
|
-
"path": "locale"
|
543
|
-
}
|
544
|
-
)
|
545
|
-
|
546
|
-
"""
|
547
|
-
Example: Get all members of an Audience
|
548
|
-
"""
|
549
|
-
resp = client.audiences.get_audience_members(
|
550
|
-
audience_id: "your-audience-id",
|
551
|
-
cursor: nil
|
552
|
-
)
|
553
|
-
puts resp['status']
|
554
|
-
|
555
|
-
"""
|
556
|
-
Example: Send to an Audience
|
557
|
-
"""
|
558
|
-
client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
|
559
|
-
res = client.send_message({
|
560
|
-
"message" => {
|
561
|
-
"to" => {
|
562
|
-
"audience_id" => "your-audience-id"
|
563
|
-
}
|
564
|
-
"content" => {
|
565
|
-
"title" => "hello {{name}}",
|
566
|
-
"body" => "Welcome to Courier!"
|
567
|
-
},
|
568
|
-
"data" => {
|
569
|
-
"name" => "Ruby"
|
570
|
-
}
|
571
|
-
}
|
572
|
-
})
|
573
|
-
puts res.code # the HTTP response code
|
574
|
-
puts res.request_id # if the code is 202, this will be the Courier request ID for this message
|
575
|
-
rescue Courier::CourierAPIError => re #error sent from from the API
|
576
|
-
puts re.message
|
577
|
-
end
|
578
|
-
```
|
579
|
-
|
580
|
-
### Audit Events
|
581
|
-
|
582
|
-
```Ruby
|
583
|
-
"""
|
584
|
-
Example: List audit events
|
585
|
-
"""
|
586
|
-
resp = client.audit_events.list()
|
587
|
-
|
588
|
-
"""
|
589
|
-
Example: Get a specific audit event
|
590
|
-
"""
|
591
|
-
resp = client.audit_events.get(audit_event_id: "audit-event-id")
|
592
|
-
```
|
593
|
-
|
594
|
-
## Development
|
595
|
-
|
596
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
597
|
-
|
598
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
599
|
-
|
600
|
-
## Contributing
|
601
|
-
|
602
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/trycourier/courier-ruby.
|
603
|
-
|
604
|
-
## License
|
605
|
-
|
606
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
607
|
-
|
608
|
-
```
|
609
|
-
|
610
|
-
```
|
data/Rakefile
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "trycourier"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
data/lib/trycourier/accounts.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
module Courier
|
2
|
-
class Accounts
|
3
|
-
KEY = "/accounts"
|
4
|
-
|
5
|
-
def initialize(session)
|
6
|
-
@session = session
|
7
|
-
end
|
8
|
-
|
9
|
-
def get_account(account_id:)
|
10
|
-
path = "#{KEY}/#{account_id}"
|
11
|
-
res = @session.send(path, "GET")
|
12
|
-
ErrorHandler.check_err(res)
|
13
|
-
end
|
14
|
-
|
15
|
-
def get_accounts(limit: nil, cursor: nil)
|
16
|
-
params = {}
|
17
|
-
if limit
|
18
|
-
params["limit"] = limit
|
19
|
-
end
|
20
|
-
|
21
|
-
if cursor
|
22
|
-
params["cursor"] = cursor
|
23
|
-
end
|
24
|
-
|
25
|
-
res = @session.send(KEY, "GET", params: params)
|
26
|
-
ErrorHandler.check_err(res)
|
27
|
-
end
|
28
|
-
|
29
|
-
def put_account(account_id:, account:)
|
30
|
-
path = "#{KEY}/#{account_id}"
|
31
|
-
|
32
|
-
res = @session.send(path, "PUT", body: account, headers: {})
|
33
|
-
ErrorHandler.check_err(res)
|
34
|
-
end
|
35
|
-
|
36
|
-
def delete_account(account_id:)
|
37
|
-
path = "#{KEY}/#{account_id}"
|
38
|
-
res = @session.send(path, "DELETE")
|
39
|
-
ErrorHandler.check_err_non_json(res)
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|