Module: SendGrid4r::REST::Subusers

Includes:
Request
Included in:
API
Defined in:
lib/sendgrid4r/rest/subusers.rb

Overview

SendGrid Web API v3 Subusers

Defined Under Namespace

Classes: Ips, Monitor, Subuser

Constant Summary

Constants included from Request

Request::BASE_URL

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Request

#create_args, #delete, #execute, #get, #patch, #post, #process_array_params, #process_url_params, #put

Class Method Details

.create_monitor(resp) ⇒ Object



45
46
47
48
# File 'lib/sendgrid4r/rest/subusers.rb', line 45

def self.create_monitor(resp)
  return resp if resp.nil?
  Monitor.new(resp['email'], resp['frequency'])
end

.create_subuser(resp) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/sendgrid4r/rest/subusers.rb', line 30

def self.create_subuser(resp)
  return resp if resp.nil?
  Subuser.new(
    resp['id'],
    resp['username'],
    resp['email'],
    resp['password'],
    resp['ips'],
    resp['reputation'],
    resp['disabled']
  )
end

.create_subusers(resp) ⇒ Object



25
26
27
28
# File 'lib/sendgrid4r/rest/subusers.rb', line 25

def self.create_subusers(resp)
  return resp if resp.nil?
  resp.map { |subuser| Subusers.create_subuser(subuser) }
end

.url(subuser_name = nil) ⇒ Object



15
16
17
18
19
# File 'lib/sendgrid4r/rest/subusers.rb', line 15

def self.url(subuser_name = nil)
  url = "#{BASE_URL}/subusers"
  url = "#{url}/#{subuser_name}" unless subuser_name.nil?
  url
end

.url_monitor(username) ⇒ Object



21
22
23
# File 'lib/sendgrid4r/rest/subusers.rb', line 21

def self.url_monitor(username)
  "#{Subusers.url(username)}/monitor"
end

Instance Method Details

#delete_subuser(username:, &block) ⇒ Object



74
75
76
# File 'lib/sendgrid4r/rest/subusers.rb', line 74

def delete_subuser(username:, &block)
  delete(@auth, Subusers.url(username), &block)
end

#delete_subuser_monitor(username:, &block) ⇒ Object



96
97
98
# File 'lib/sendgrid4r/rest/subusers.rb', line 96

def delete_subuser_monitor(username:, &block)
  delete(@auth, Subusers.url_monitor(username), &block)
end

#get_subuser_monitor(username:, email:, frequency:, &block) ⇒ Object



78
79
80
81
82
# File 'lib/sendgrid4r/rest/subusers.rb', line 78

def get_subuser_monitor(username:, email:, frequency:, &block)
  endpoint = Subusers.url_monitor(username)
  payload = { email: email, frequency: frequency }
  Subusers.create_monitor(post(@auth, endpoint, payload, &block))
end

#get_subuser_reputation(usernames:, &block) ⇒ Object



100
101
102
103
104
105
# File 'lib/sendgrid4r/rest/subusers.rb', line 100

def get_subuser_reputation(usernames:, &block)
  params = ''
  usernames.each { |username| params += "usernames=#{username}&" }
  endpoint = "#{Subusers.url}/reputations?#{params}"
  Subusers.create_subusers(get(@auth, endpoint, usernames, &block))
end

#get_subusers(limit: nil, offset: nil, username: nil, &block) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/sendgrid4r/rest/subusers.rb', line 50

def get_subusers(limit: nil, offset: nil, username: nil, &block)
  params = {}
  params[:limit] = limit unless limit.nil?
  params[:offset] = offset unless offset.nil?
  params[:username] = username unless username.nil?
  Subusers.create_subusers(get(@auth, Subusers.url, params, &block))
end

#patch_subuser(username:, disabled:, &block) ⇒ Object



68
69
70
71
72
# File 'lib/sendgrid4r/rest/subusers.rb', line 68

def patch_subuser(username:, disabled:, &block)
  payload = { disabled: disabled }
  resp = patch(@auth, Subusers.url(username), payload, &block)
  Subusers.create_subuser(resp)
end

#post_subuser(username:, email:, password:, ips:, &block) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/sendgrid4r/rest/subusers.rb', line 58

def post_subuser(username:, email:, password:, ips:, &block)
  params = {
    username: username,
    email: email,
    password: password,
    ips: ips
  }
  Subusers.create_subuser(post(@auth, Subusers.url, params, &block))
end

#post_subuser_monitor(username:, email:, frequency:, &block) ⇒ Object



84
85
86
87
88
# File 'lib/sendgrid4r/rest/subusers.rb', line 84

def post_subuser_monitor(username:, email:, frequency:, &block)
  endpoint = Subusers.url_monitor(username)
  payload = { email: email, frequency: frequency }
  Subusers.create_monitor(post(@auth, endpoint, payload, &block))
end

#put_subuser_assigned_ips(username:, ips:, &block) ⇒ Object



107
108
109
110
# File 'lib/sendgrid4r/rest/subusers.rb', line 107

def put_subuser_assigned_ips(username:, ips:, &block)
  resp = put(@auth, "#{Subusers.url(username)}/ips", ips, &block)
  Subusers.create_subuser(resp)
end

#put_subuser_monitor(username:, email:, frequency:, &block) ⇒ Object



90
91
92
93
94
# File 'lib/sendgrid4r/rest/subusers.rb', line 90

def put_subuser_monitor(username:, email:, frequency:, &block)
  endpoint = Subusers.url_monitor(username)
  payload = { email: email, frequency: frequency }
  Subusers.create_monitor(put(@auth, endpoint, payload, &block))
end