Humaans.TimesheetSubmissions behaviour (Humaans v0.4.0)
View SourceThis module provides functions for managing timesheet submission resources in the Humaans API. Timesheet submissions represent a collection of timesheet entries for a specific time period that has been submitted for review and approval.
Summary
Functions
Creates a new timesheet submission resource.
Deletes a specific timesheet submission by ID.
Lists all timesheet submission resources.
Retrieves a specific timesheet submission by ID.
Updates a specific timesheet submission by ID.
Types
@type list_response() :: {:ok, [ %Humaans.Resources.TimesheetSubmission{ changes_requested: term(), created_at: term(), duration_as_days: term(), duration_as_time: term(), end_date: term(), id: term(), person_id: term(), reviewed_at: term(), reviewed_by: term(), start_date: term(), status: term(), submitted_at: term(), updated_at: term() } ]} | {:error, any()}
@type response() :: {:ok, %Humaans.Resources.TimesheetSubmission{ changes_requested: term(), created_at: term(), duration_as_days: term(), duration_as_time: term(), end_date: term(), id: term(), person_id: term(), reviewed_at: term(), reviewed_by: term(), start_date: term(), status: term(), submitted_at: term(), updated_at: term() }} | {:error, any()}
Callbacks
Functions
Creates a new timesheet submission resource.
Parameters
client
- Client map created withHumaans.new/1
params
- Map of parameters for the new timesheet submission
Examples
client = Humaans.new(access_token: "your_access_token")
params = %{
personId: "person_id",
startDate: "2023-01-01",
endDate: "2023-01-31",
status: "pending"
}
{:ok, submission} = Humaans.TimesheetSubmissions.create(client, params)
@spec delete(client :: map(), id :: String.t()) :: delete_response()
Deletes a specific timesheet submission by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the timesheet submission to delete
Examples
client = Humaans.new(access_token: "your_access_token")
{:ok, result} = Humaans.TimesheetSubmissions.delete(client, "submission_id")
# result contains %{id: "submission_id", deleted: true}
@spec list(client :: map(), params :: keyword()) :: list_response()
Lists all timesheet submission resources.
Returns a list of timesheet submission 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 timesheet submissions
{:ok, submissions} = Humaans.TimesheetSubmissions.list(client)
# List with filtering parameters
{:ok, submissions} = Humaans.TimesheetSubmissions.list(client, %{personId: "person_id"})
Retrieves a specific timesheet submission by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the timesheet submission to retrieve
Examples
client = Humaans.new(access_token: "your_access_token")
{:ok, submission} = Humaans.TimesheetSubmissions.retrieve(client, "submission_id")
Updates a specific timesheet submission by ID.
Parameters
client
- Client map created withHumaans.new/1
id
- String ID of the timesheet submission to updateparams
- Map of parameters to update
Examples
client = Humaans.new(access_token: "your_access_token")
params = %{status: "approved"}
{:ok, updated_submission} = Humaans.TimesheetSubmissions.update(client, "submission_id", params)