Humaans.People behaviour (Humaans v0.1.0)

View Source

Handles operations related to bank accounts.

Summary

Types

delete_response()

@type delete_response() :: {:ok, %{id: String.t(), deleted: bool()}} | {:error, any()}

list_response()

@type list_response() ::
  {:ok,
   [
     %Humaans.Resources.Person{
       address: term(),
       bio: term(),
       birthday: term(),
       calendar_feed_token: term(),
       city: term(),
       company_id: term(),
       contract_type: term(),
       country: term(),
       country_code: term(),
       created_at: term(),
       demo: term(),
       dietary_preference: term(),
       email: term(),
       employee_id: term(),
       employment_end_date: term(),
       employment_start_date: term(),
       first_name: term(),
       first_working_day: term(),
       food_allergies: term(),
       formatted_personal_phone_number: term(),
       formatted_phone_number: term(),
       gender: term(),
       github: term(),
       id: term(),
       is_birthday_hidden: term(),
       is_verified: term(),
       is_work_email_hidden: term(),
       last_name: term(),
       last_working_day: term(),
       leaving_file_id: term(),
       leaving_note: term(),
       leaving_reason: term(),
       linked_in: term(),
       location_id: term(),
       middle_name: term(),
       nationalities: term(),
       nationality: term(),
       payroll_provider: term(),
       personal_email: term(),
       personal_phone_number: term(),
       phone_number: term(),
       postcode: term(),
       preferred_name: term(),
       probation_end_date: term(),
       profile_photo: term(),
       profile_photo_id: term(),
       public_holiday_calendar_id: term(),
       remote_city: term(),
       remote_country_code: term(),
       remote_region_code: term(),
       remote_timezone: term(),
       role: term(),
       seen_documents_at: term(),
       source: term(),
       source_id: term(),
       spoken_languages: term(),
       state: term(),
       status: term(),
       tax_code: term(),
       tax_id: term(),
       teams: term(),
       timezone: term(),
       turnover_impact: term(),
       twitter: term(),
       updated_at: term(),
       working_days: term()
     }
   ]}
  | {:error, any()}

response()

@type response() ::
  {:ok,
   %Humaans.Resources.Person{
     address: term(),
     bio: term(),
     birthday: term(),
     calendar_feed_token: term(),
     city: term(),
     company_id: term(),
     contract_type: term(),
     country: term(),
     country_code: term(),
     created_at: term(),
     demo: term(),
     dietary_preference: term(),
     email: term(),
     employee_id: term(),
     employment_end_date: term(),
     employment_start_date: term(),
     first_name: term(),
     first_working_day: term(),
     food_allergies: term(),
     formatted_personal_phone_number: term(),
     formatted_phone_number: term(),
     gender: term(),
     github: term(),
     id: term(),
     is_birthday_hidden: term(),
     is_verified: term(),
     is_work_email_hidden: term(),
     last_name: term(),
     last_working_day: term(),
     leaving_file_id: term(),
     leaving_note: term(),
     leaving_reason: term(),
     linked_in: term(),
     location_id: term(),
     middle_name: term(),
     nationalities: term(),
     nationality: term(),
     payroll_provider: term(),
     personal_email: term(),
     personal_phone_number: term(),
     phone_number: term(),
     postcode: term(),
     preferred_name: term(),
     probation_end_date: term(),
     profile_photo: term(),
     profile_photo_id: term(),
     public_holiday_calendar_id: term(),
     remote_city: term(),
     remote_country_code: term(),
     remote_region_code: term(),
     remote_timezone: term(),
     role: term(),
     seen_documents_at: term(),
     source: term(),
     source_id: term(),
     spoken_languages: term(),
     state: term(),
     status: term(),
     tax_code: term(),
     tax_id: term(),
     teams: term(),
     timezone: term(),
     turnover_impact: term(),
     twitter: term(),
     updated_at: term(),
     working_days: term()
   }}
  | {:error, any()}

Callbacks

create(map)

@callback create(map()) :: {:ok, map()} | {:error, any()}

delete(t)

@callback delete(String.t()) :: {:ok, map()} | {:error, any()}

list(map)

@callback list(map()) :: {:ok, map()} | {:error, any()}

retrieve(t)

@callback retrieve(String.t()) :: {:ok, map()} | {:error, any()}

update(t, map)

@callback update(String.t(), map()) :: {:ok, map()} | {:error, any()}

Functions

create(params)

@spec create(params :: keyword()) :: response()

delete(id)

@spec delete(id :: String.t()) :: delete_response()

list(params \\ %{})

@spec list(params :: keyword()) :: list_response()

retrieve(id)

@spec retrieve(id :: String.t()) :: response()

update(id, params)

@spec update(id :: String.t(), params :: keyword()) :: response()