Module: ShelbyArena::Client::Person
- Included in:
- ShelbyArena::Client
- Defined in:
- lib/shelby_arena/resources/person.rb
Instance Method Summary collapse
- #create_person(first_name:, last_name:, email:) ⇒ Object
- #find_people_by_email(email) ⇒ Object
- #find_people_by_name_and_email(first_name, last_name, email) ⇒ Object
- #find_person(id, options = {}) ⇒ Object
- #list_people(options = {}) ⇒ Object
- #update_person(id, first_name: nil, last_name: nil, email: nil) ⇒ Object
Instance Method Details
#create_person(first_name:, last_name:, email:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/shelby_arena/resources/person.rb', line 25 def create_person( first_name:, last_name:, email: ) path = 'person/add' body = { 'FirstName' => first_name, 'LastName' => last_name, 'Emails' => ['Address' => email] } = {} [:api_sig] = generate_api_sig(path, ) res = json_post("#{path}?api_session=#{[:api_session]}&api_sig=#{[:api_sig]}", body.to_json) res.dig('ModifyResult', 'ObjectID') end |
#find_people_by_email(email) ⇒ Object
14 15 16 |
# File 'lib/shelby_arena/resources/person.rb', line 14 def find_people_by_email(email) list_people(email: email) end |
#find_people_by_name_and_email(first_name, last_name, email) ⇒ Object
10 11 12 |
# File 'lib/shelby_arena/resources/person.rb', line 10 def find_people_by_name_and_email(first_name, last_name, email) list_people(firstName: first_name, lastName: last_name, email: email) end |
#find_person(id, options = {}) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/shelby_arena/resources/person.rb', line 18 def find_person(id, = {}) path = people_path(id) [:api_sig] = generate_api_sig(path, ) res = get(path, .sort) Response::Person.format(res.dig('Person')) end |
#list_people(options = {}) ⇒ Object
4 5 6 7 8 |
# File 'lib/shelby_arena/resources/person.rb', line 4 def list_people( = {}) [:api_sig] = generate_api_sig(people_path, ) res = get(people_path, .sort) Response::Person.format_list(res.dig('PersonListResult', 'Persons', 'Person')) end |
#update_person(id, first_name: nil, last_name: nil, email: nil) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/shelby_arena/resources/person.rb', line 44 def update_person( id, first_name: nil, last_name: nil, email: nil ) path = "#{people_path(id)}/update" body = {} body['FirstName'] = first_name if first_name body['LastName'] = last_name if last_name body['Emails'] = ['Address' => email] if email = {} [:api_sig] = generate_api_sig(path, ) res = json_post("#{path}?api_session=#{[:api_session]}&api_sig=#{[:api_sig]}", body.to_json) res.dig('ModifyResult', 'ObjectID') end |