Humaans.Compensations behaviour (Humaans v0.4.0)
View SourceThis module provides functions for managing compensation resources in the Humaans API. Compensations represent the actual monetary values assigned to a person under a specific compensation type (e.g., a specific person's salary or bonus).
Summary
Functions
Creates a new compensation resource.
Deletes a specific compensation by ID.
Lists all compensation resources.
Retrieves a specific compensation by ID.
Updates a specific compensation by ID.
Types
@type list_response() :: {:ok, [ %Humaans.Resources.Compensation{ amount: term(), compensation_type_id: term(), created_at: term(), currency: term(), effective_date: term(), end_date: term(), end_reason: term(), id: term(), note: term(), period: term(), person_id: term(), updated_at: term() } ]} | {:error, any()}
@type response() :: {:ok, %Humaans.Resources.Compensation{ amount: term(), compensation_type_id: term(), created_at: term(), currency: term(), effective_date: term(), end_date: term(), end_reason: term(), id: term(), note: term(), period: term(), person_id: term(), updated_at: term() }} | {:error, any()}
Callbacks
Functions
Creates a new compensation resource.
Parameters
client
- Client map created withHumaans.new/1
params
- Map of parameters for the new compensation
Examples
client = Humaans.new(access_token: "your_access_token")
params = %{
personId: "person_id",
compensationTypeId: "comp_type_id",
amount: "70000",
currency: "EUR",
period: "annual",
effectiveDate: "2023-01-01"
}
{:ok, compensation} = Humaans.Compensations.create(client, params)
@spec delete(client :: map(), id :: String.t()) :: delete_response()
Deletes a specific compensation by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the compensation to delete
Examples
client = Humaans.new(access_token: "your_access_token")
{:ok, result} = Humaans.Compensations.delete(client, "comp_id")
# result contains %{id: "comp_id", deleted: true}
@spec list(client :: map(), params :: keyword()) :: list_response()
Lists all compensation resources.
Returns a list of compensation resources that match the optional filters provided in params
.
Parameters
client
- Client map created withHumaans.new/1
params
- Optional parameters for filtering the results (default:%{}
)
Examples
client = Humaans.new(access_token: "your_access_token")
# List all compensations
{:ok, compensations} = Humaans.Compensations.list(client)
# List with filtering parameters
{:ok, compensations} = Humaans.Compensations.list(client, %{personId: "person_id"})
Retrieves a specific compensation by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the compensation to retrieve
Examples
client = Humaans.new(access_token: "your_access_token")
{:ok, compensation} = Humaans.Compensations.retrieve(client, "comp_id")
Updates a specific compensation by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the compensation to updateparams
- Map of parameters to update
Examples
client = Humaans.new(access_token: "your_access_token")
params = %{amount: "75000", note: "Annual raise"}
{:ok, updated_comp} = Humaans.Compensations.update(client, "comp_id", params)