Class: Printos::EmailService
- Inherits:
-
BaseService
- Object
- BaseService
- Printos::EmailService
- Defined in:
- lib/printos/email_service.rb
Constant Summary collapse
- API_BASE =
'api/email-service/v1'
Class Method Summary collapse
- .email_role(org_id, role_name, subject, body) ⇒ Object
- .email_users(user_ids, subject, body) ⇒ Object
- .invite_user(cust_id, email, fname = "", lname = "") ⇒ Object
- .role_id(role_name) ⇒ Object
- .role_users(org_id, role_name) ⇒ Object
Methods inherited from BaseService
get_resource, parse, post_resource, put_resource
Class Method Details
.email_role(org_id, role_name, subject, body) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/printos/email_service.rb', line 7 def self.email_role(org_id, role_name, subject, body) user_ids = role_users(org_id, role_name) if user_ids && user_ids.size > 0 email_users(user_ids, subject, body) end end |
.email_users(user_ids, subject, body) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/printos/email_service.rb', line 15 def self.email_users(user_ids, subject, body) pay_load = { userIds: user_ids, emailInfo: { subject: subject, body: body } } post_resource("#{API_BASE}/emails/users", pay_load, true) end |
.invite_user(cust_id, email, fname = "", lname = "") ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/printos/email_service.rb', line 26 def self.invite_user(cust_id, email, fname = "", lname = "") payload = { invitation: { email: email, firstName: fname, lastName: lname, internalId: { gbu: 'ThreeD', gbuInternalId: cust_id, internalIdType: 'PSPId' }, organizationType: 'PSP', invitationType: 'PSP_ADMIN', subType: '3dpaas', ext_payload: { onboard: { redirectAppId: '3dpaas', '3dpaas' => { customerRef: cust_id } } } } } post_resource("#{API_BASE}/invitations", payload, true) end |
.role_id(role_name) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/printos/email_service.rb', line 55 def self.role_id(role_name) response = Printos::AaaService.system_roles(true) id = response[:systemRoles].select {|role| role[:name] == role_name}&.first&.dig(:id) raise "Unable to lookup id for role '#{role_name}'" unless (id) id end |
.role_users(org_id, role_name) ⇒ Object
50 51 52 53 |
# File 'lib/printos/email_service.rb', line 50 def self.role_users(org_id, role_name) system_role_users = Printos::AaaService.system_role_users(org_id, role_id(role_name)) system_role_users[:users].map {|user| user[:userId]} end |