Skip to content

osetrov/dashamail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DashaMail

API wrapper для DashaMail API.

Оглавление

  1. Установка
  2. Методы для работы с Адресными Базами
  3. Методы для работы с Рассылками
  4. Методы для работы с Отчетами
  5. Методы для работы с Аккаунтом

Установка

Установка Ruby

$ gem install dashamail

Установка Rails

добавьте в Gemfile:

gem 'dashamail'

и запустите bundle install.

Затем:

rails g dashamail:install

Требования

Необходимо получить api_key

Использование Rails

В файл config/dashamail.yml вставьте ваши данные

Использование Ruby

Создайте экземпляр объекта Dashamail::Request:

dasha = Dashamail::Request.new(api_key: 123)

Вы можете изменять api_key, timeout, open_timeout, faraday_adapter, proxy, ssl_options, symbolize_keys, logger, и debug:

Dashamail::Request.api_key = "123"
Dashamail::Request.timeout = 15
Dashamail::Request.open_timeout = 15
Dashamail::Request.symbolize_keys = true
Dashamail::Request.debug = false
Dashamail::Request.ssl_options = { verify: false }

Либо в файле config/initializers/dashamail.rb для Rails.

Debug Logging

Pass debug: true to enable debug logging to STDOUT.

dasha = Dashamail::Request.new(api_key: "123", debug: true)

Custom logger

Ruby Logger.new is used by default, but it can be overrided using:

dasha = Dashamail::Request.new(api_key: "123", debug: true, logger: MyLogger.new)

Logger can be also set by globally:

Dashamail::Request.logger = MyLogger.new

Примеры

Методы для работы с Адресными Базами

response = Dashamail::Request.lists.get.retrieve!
lists = response.data
body = {
  name: "Test"
}
response = Dashamail::Request.lists.add.create!(body: body)
list_id = response.data[:list_id]
body = {
  list_id: list_id,
  name: "Test renamed"
}
response = Dashamail::Request.lists.update.create!(body: body)
result = response.data
body = {
  list_id: list_id
}
response = Dashamail::Request.lists.delete.create!(body: body)
result = response.data
params = {
  list_id: list_id
}
response = Dashamail::Request.lists.get_members.retrieve!(params: params)
members = response.data
params = {
  list_id: list_id
}
response = Dashamail::Request.lists.get_unsubscribed.retrieve!(params: params)
unsubscribed_members = response.data
params = {
  list_id: list_id
}
response = Dashamail::Request.lists.get_complaints.retrieve!(params: params)
complaints = response.data
params = {
  email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.member_activity.retrieve!(params: params)
activity = response.data
body = {
  list_id: list_id,
  file: "https://example.com/file.xls",
  email: 0,
  type: "xls"
}
response = Dashamail::Request.lists.upload.create!(body: body)
result = response.data
body = {
  list_id: list_id,
  email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.add_member.create!(body: body)
member_id = response.data[:member_id]
body = {
  list_id: list_id,
  batch: "pavel.osetrov@me.com;retail.deppa@yandex.ru",
  update: true
}
response = Dashamail::Request.lists.add_member_batch.create!(body: body)
result = response.data
body = {
  list_id: list_id,
  email: "pavel.osetrov@me.com",
  gender: 'm'
}
response = Dashamail::Request.lists.update_member.create!(body: body)
result = response.data
body = {
  member_id: member_id
}
response = Dashamail::Request.lists.delete_member.create!(body: body)
result = response.data
body = {
  email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.unsubscribe_member.create!(body: body)
result = response.data
body = {
  member_id: member_id,
  list_id: list_id
}
response = Dashamail::Request.lists.move_member.create!(body: body)
result = response.data
body = {
  member_id: member_id,
  list_id: list_id
}
response = Dashamail::Request.lists.copy_member.create!(body: body)
result = response.data
body = {
  list_id: list_id,
  type: 'text',
  title: 'Город'
}
response = Dashamail::Request.lists.add_merge.create!(body: body)
result = response.data
body = {
  list_id: list_id,
  merge_id: 1,
  req: 'off'
}
response = Dashamail::Request.lists.update_merge.create!(body: body)
result = response.data
body = {
  list_id: list_id,
  merge_id: 1
}
response = Dashamail::Request.lists.delete_merge.create!(body: body)
result = response.data
params = {
  email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.last_status.retrieve!(params: params)
status = response.data
params = {
  list_id: list_id
}
response = Dashamail::Request.lists.get_import_history.retrieve!(params: params)
import_history = response.data
params = {
  email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.check_email.retrieve!(params: params)
valid = response.data

Методы для работы с Рассылками

response = Dashamail::Request.campaigns.get.retrieve!
campaigns = response.data
body = {
        list_id: list_id,
        name: "Campaigns test"
}
response = Dashamail::Request.campaigns.create.create!(body: body)
campaign_id = response.data[:campaign_id]
body = {
        list_id: list_id,
        name: "Auto campaigns test"
}
response = Dashamail::Request.campaigns.create_auto.create!(body: body)
campaign_id = response.data[:campaign_id]
body = {
        campaign_id: campaign_id,
        name: "Campaigns test renamed"
}
response = Dashamail::Request.campaigns.update.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id,
        name: "Auto campaigns test renamed"
}
response = Dashamail::Request.campaigns.update_auto.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.delete.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id,
        file: "https://storage.deppa.ru/uploads/logo.jpg",
        name: "logo.jpg"
}
response = Dashamail::Request.campaigns.attach.create!(body: body)
attach_id = response.data[:id]
body = {
        campaign_id: campaign_id,
        id: attach_id
}
response = Dashamail::Request.campaigns.delete_attachment.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.get_templates.retrieve!
templates = response.data
response = Dashamail::Request.campaigns.get_saved_templates.retrieve!
templates = response.data
body = {
        name: "Hello",
        template: "<h1>Hello world!</h1>"
}
response = Dashamail::Request.campaigns.add_template.create!(body: body)
template_id = response.data[:id]
body = {
        id: template_id
}
response = Dashamail::Request.campaigns.delete_template.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id,
        member_id: member_id,
        delay: 3600
}
response = Dashamail::Request.campaigns.force_auto.create!(body: body)
result = response.data
body = {
        data: [{
                       list_id: list_id,
                       name: "Campaigns test"
               }]
} 

response = Dashamail::Request.campaigns.multi_create.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.multi_get.retrieve!
result = response.data
body = {
        campaign_id: campaign_id,
        data: [{
                       list_id: list_id,
                       name: "Campaigns test"
               }]
} 

response = Dashamail::Request.campaigns.multi_update.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.get_folders.retrieve!
result = response.data
body = {
        campaign_id: campaign_id,
        folder_id: folder_id
}
response = Dashamail::Request.campaigns.move_to_folder.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.pause.create!(body: body)
result = response.data
body = {
        campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.restart_paused.create!(body: body)
result = response.data

Методы для работы с Отчетами

params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.sent.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.delivered.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.opened.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.clicked.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.unsubscribed.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.bounced.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.summary.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.clients.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.geo.retrieve!(params: params)
reports = response.data
params = {
        campaign_id: campaign_id
}
response = Dashamail::Request.reports.events.retrieve!(params: params)
reports = response.data

Методы для работы с Аккаунтом

response = Dashamail::Request.account.get_balance.retrieve!
result = response.data
response = Dashamail::Request.account.get_webhooks.retrieve!
result = response.data
body = {
        open: "https://example.com/webhooks/open"
}
response = Dashamail::Request.account.add_webhooks.create!(body: body)
result = response.data
body = {
        event_name: "open"
}
response = Dashamail::Request.account.delete_webhooks.create!(body: body)
result = response.data
body = {
        email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.account.confirm_from_email.create!(body: body)
result = response.data
response = Dashamail::Request.account.get_confirmed.retrieve!
result = response.data
body = {
        domain: "example.com"
}
response = Dashamail::Request.account.add_domain.create!(body: body)
result = response.data
body = {
        domain: "example.com"
}
response = Dashamail::Request.account.check_domains.create!(body: body)
result = response.data
body = {
        domain: "example.com"
}
response = Dashamail::Request.account.delete_domain.create!(body: body)
result = response.data

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages