Class: Notifications::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/notifications/client.rb,
lib/notifications/client/speaker.rb,
lib/notifications/client/version.rb,
lib/notifications/client/notification.rb,
lib/notifications/client/received_text.rb,
lib/notifications/client/request_error.rb,
lib/notifications/client/template_preview.rb,
lib/notifications/client/response_template.rb,
lib/notifications/client/template_collection.rb,
lib/notifications/client/response_notification.rb,
lib/notifications/client/notifications_collection.rb,
lib/notifications/client/received_text_collection.rb

Defined Under Namespace

Classes: Notification, NotificationsCollection, ReceivedText, ReceivedTextCollection, RequestError, ResponseNotification, Speaker, Template, TemplateCollection, TemplatePreview

Constant Summary collapse

PRODUCTION_BASE_URL =
"https://api.notifications.service.gov.uk".freeze
VERSION =
"2.5.1".freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Client

Returns a new instance of Client.



24
25
26
# File 'lib/notifications/client.rb', line 24

def initialize(*args)
  @speaker = Speaker.new(*args)
end

Instance Attribute Details

#speakerObject (readonly)

Returns the value of attribute speaker.



15
16
17
# File 'lib/notifications/client.rb', line 15

def speaker
  @speaker
end

Instance Method Details

#generate_template_preview(id, options = {}) ⇒ TemplatePreview

Parameters:

  • options (String) (defaults to: {})
  • personalisation (Hash)

    a customizable set of options

Returns:



120
121
122
123
124
125
# File 'lib/notifications/client.rb', line 120

def generate_template_preview(id, options = {})
  path = "/v2/template/" << id << "/preview"
  TemplatePreview.new(
    speaker.post_with_url(path, options)
  )
end

#get_all_templates(options = {}) ⇒ TemplateCollection

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :type (String)

    email, sms, letter

Returns:



109
110
111
112
113
114
# File 'lib/notifications/client.rb', line 109

def get_all_templates(options = {})
  path = "/v2/templates"
  TemplateCollection.new(
    speaker.get_with_url(path, options)
  )
end

#get_notification(id) ⇒ Notification

Parameters:

  • id (String)

Returns:

See Also:



59
60
61
62
63
# File 'lib/notifications/client.rb', line 59

def get_notification(id)
  Notification.new(
    speaker.get(id)
  )
end

#get_notifications(options = {}) ⇒ NotificationsCollection

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :template_type (String)

    sms or email

  • :status (String)

    sending, delivered, permanently failed, temporarily failed, or technical failure

  • :reference (String)

    your reference for the notification

  • :older_than (String)

    notification id to return notificaitons that are older than this id.

Returns:

See Also:



78
79
80
81
82
# File 'lib/notifications/client.rb', line 78

def get_notifications(options = {})
  NotificationsCollection.new(
    speaker.get(nil, options)
  )
end

#get_received_texts(options = {}) ⇒ ReceivedTextCollection

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :older_than (String)

    received text id to return received texts that are older than this id.

Returns:



131
132
133
134
135
136
# File 'lib/notifications/client.rb', line 131

def get_received_texts(options = {})
  path = "/v2/received-text-messages"
  ReceivedTextCollection.new(
    speaker.get_with_url(path, options)
  )
end

#get_template_by_id(id, options = {}) ⇒ Template

Parameters:

  • id (String)

Returns:



87
88
89
90
91
92
# File 'lib/notifications/client.rb', line 87

def get_template_by_id(id, options = {})
  path = "/v2/template/" << id
  Template.new(
    speaker.get_with_url(path, options)
  )
end

#get_template_version(id, version, options = {}) ⇒ Template

Parameters:

  • id (String)
  • version (int)

Returns:



98
99
100
101
102
103
# File 'lib/notifications/client.rb', line 98

def get_template_version(id, version, options = {})
  path = "/v2/template/" << id << "/version/" << version.to_s
  Template.new(
    speaker.get_with_url(path, options)
  )
end

#send_email(args) ⇒ ResponseNotification

 @see Notifications::Client::Speaker#post



31
32
33
34
35
# File 'lib/notifications/client.rb', line 31

def send_email(args)
  ResponseNotification.new(
    speaker.post("email", args)
  )
end

#send_letter(args) ⇒ ResponseNotification



49
50
51
52
53
# File 'lib/notifications/client.rb', line 49

def send_letter(args)
  ResponseNotification.new(
    speaker.post("letter", args)
  )
end

#send_sms(args) ⇒ ResponseNotification



40
41
42
43
44
# File 'lib/notifications/client.rb', line 40

def send_sms(args)
  ResponseNotification.new(
    speaker.post("sms", args)
  )
end