Sha256: d3d90aa3bfb79dadd16ea3121390206dbdc5b58721f9fa00e3bdb3ad3e416178

Contents?: true

Size: 1.88 KB

Versions: 2

Compression:

Stored size: 1.88 KB

Contents

# encoding: utf-8

module CitrusMail
  HOST = 'https://app.freshmail.pl'
  ERRORS = {
      101 => 'niepoprawny klucz określający listę subskrypcyjną',
      102 => 'brak wymaganego pola email',
      103 => 'klucze identyfikujące pola dodatkowe nie należą do tej listy subskrypcyjnej',
      104 => 'klucz identyfikujący api jest niepoprawny',
      201 => 'podany email jest już zapisany do danej listy subskrypcyjnej',
      202 => 'podany adres email jest niepoprawny',
      203 => 'długość znaków dla pól dodatkowych, bądź nazwy została przekroczona',
      204 => 'podane kodowanie znaków jest nieprawidłowe',
      205 => 'dane wprowadzone od pól dodatkowych przekraczają dozwoloną długość 255 znaków',
      206 => 'nie ma takiego subskrybenta',
      207 => 'niepoprawne kodowanie',
      999 => 'błąd połączenia do bazy danych'
  }

  class CitrusMailError < StandardError
    def initialize(code_or_message=nil)
      if code_or_message.is_a?(Fixnum)
        code_or_message = "#{code_or_message} - #{CitrusMail::ERRORS[code_or_message] || "Unknown error"}"
      end
      super(code_or_message)
    end
  end

  #raised when http request is failed
  class RequestFailed < CitrusMailError

  end

  #raised when api key is invalid (FreshMail return code 104)
  class InvalidAPIKey < CitrusMailError

  end

  #raised when list key is invalid (FreshMail return code 101)
  class InvalidListKey < CitrusMailError

  end

  #raised when email is invalid (FreshMail return code 202)
  class InvalidEmail < CitrusMailError

  end

  #raised when email already exists for list (FreshMail return code 201)
  class EmailExists < CitrusMailError

  end

  #raised when subscriber not exists (FreshMail return code 206)
  class SubscriberNotExists < CitrusMailError

  end
end

require "citrus_mail/version"
require 'citrus_mail/client'
require 'citrus_mail/list'
require 'citrus_mail/response'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
citrus-mail-0.2.1 lib/citrus_mail.rb
citrus-mail-0.2.0 lib/citrus_mail.rb