Work Shifts
Manage work shifts of employees.
Endpoints
- get /api/v3/office/work_shifts
- patch /api/v3/office/work_shifts/:employee_id
- post /api/v3/office/work_shifts/:employee_id
- get /api/v3/office/work_shifts/:employee_id/date/:date
- get /api/v3/office/work_shifts/:employee_id/total_missed_balance
- get /api/v3/office/work_shifts/pending
- get /api/v3/office/work_shifts/report
get/api/v3/office/work_shifts
Return a paginated list of office/work_shifts
Input Schema
object
page?:
object
The page number, default to 1
number?: integer
The number of items per page, default to 1000
size?: integer
The sort order, comma separated list of fields. See sorting section for more details
sort?: string
Set to true to return the total number of items in the collection
count?: boolean
filter?:
object
id?: unknown
employee_id?: unknown
date?: unknown
starts_at?: unknown
ends_at?: unknown
shift_data?: unknown
raw_shift_data?: unknown
per_project_data?: unknown
project_ids?: unknown
total_validated_time?: unknown
total_productive_time?: unknown
total_billable_time?: unknown
total_unbillable_time?: unknown
total_billable_overtime?: unknown
total_unbillable_overtime?: unknown
recovered_shift_time?: unknown
missed_shift_time?: unknown
validated_at?: unknown
validated_by_id?: unknown
date?: unknown
between?: unknown
by_employee?: unknown
status?: unknown
project_ids__contains?: unknown
The related resources to include in the response. Allowed resources are:
- `employee`
included?: - `employee`
array
Elements: string
The fields to include in the response.
The key is the resource type and the value is an array of fields.
fields?: The key is the resource type and the value is an array of fields.
dictionary
Values: array
Typescript
type InputSchema = {
page?: {
// The page number, default to 1
number?: number;
// The number of items per page, default to 1000
size?: number;
};
// The sort order, comma separated list of fields. See sorting section for more details
sort?: string;
// Set to true to return the total number of items in the collection
count?: boolean;
filter?: {
id?: any;
employee_id?: any;
date?: any;
starts_at?: any;
ends_at?: any;
shift_data?: any;
raw_shift_data?: any;
per_project_data?: any;
project_ids?: any;
total_validated_time?: any;
total_productive_time?: any;
total_billable_time?: any;
total_unbillable_time?: any;
total_billable_overtime?: any;
total_unbillable_overtime?: any;
recovered_shift_time?: any;
missed_shift_time?: any;
validated_at?: any;
validated_by_id?: any;
date?: any;
between?: any;
by_employee?: any;
status?: any;
project_ids__contains?: any;
};
// The related resources to include in the response. Allowed resources are:
// - `employee`
included?: Array<string>;
// The fields to include in the response.
// The key is the resource type and the value is an array of fields.
fields?: { [key: string]: Array<any> };
};
Output Schema
object
data:
array
Elements:
object
type: string
id?: string
attributes?:
object
id?: integer
employee_id?: integer
date?: date
starts_at?: datetime
ends_at?: datetime
shift_data?: open struct
raw_shift_data?: open struct
per_project_data?: open struct
project_ids?: array
total_validated_time?: integer
total_productive_time?: integer
total_billable_time?: integer
total_unbillable_time?: integer
total_billable_overtime?: integer
total_unbillable_overtime?: integer
recovered_shift_time?: integer
missed_shift_time?: integer
validated_at?: datetime
validated_by_id?: integer
relationships?: open struct
included?:
array
Elements: open struct
Typescript
type OutputSchema = {
data: Array<{
type: string;
id?: string;
attributes?: {
id?: number;
employee_id?: number;
date?: Date;
starts_at?: Date;
ends_at?: Date;
shift_data?: Record<string, any>;
raw_shift_data?: Record<string, any>;
per_project_data?: Record<string, any>;
project_ids?: Array<any>;
total_validated_time?: number;
total_productive_time?: number;
total_billable_time?: number;
total_unbillable_time?: number;
total_billable_overtime?: number;
total_unbillable_overtime?: number;
recovered_shift_time?: number;
missed_shift_time?: number;
validated_at?: Date;
validated_by_id?: number;
};
relationships?: Record<string, any>;
}>;
included?: Array<Record<string, any>>;
};
patch/api/v3/office/work_shifts/:employee_id
Update employee work shift.
Input Schema
object
employee_id: integer
data:
object
attributes:
object
date: date
missed_shift_time?: integer
recovered_shift_time?: integer
shift_data:
array
Elements:
object
from: datetime
to: datetime
project_id?: integer or null
productive: boolean
billable: boolean
details: string
project_data?:
array
Elements:
object
project_id: integer
total_time: integer
productive_time: integer
billable_time: integer
billable_overtime: integer
unbillable_time: integer
unbillable_overtime: integer
validate?: boolean or null
Typescript
type InputSchema = {
employee_id: number;
data: {
attributes: {
date: Date;
missed_shift_time?: number;
recovered_shift_time?: number;
shift_data: Array<{
from: Date;
to: Date;
project_id?: number | null;
productive: boolean;
billable: boolean;
details: string;
}>;
project_data?: Array<{
project_id: number;
total_time: number;
productive_time: number;
billable_time: number;
billable_overtime: number;
unbillable_time: number;
unbillable_overtime: number;
}>;
validate?: boolean | null;
};
};
};
post/api/v3/office/work_shifts/:employee_id
Create employee work shift.
Input Schema
object
employee_id: integer
data:
object
attributes:
object
validated_at?: datetime or null
validated_by_id?: integer or null
shift_data?:
array
Elements:
object
from: datetime
to: datetime
project_id?: integer or null
productive: boolean
billable: boolean
details: string
Typescript
type InputSchema = {
employee_id: number;
data: {
attributes: {
validated_at?: Date | null;
validated_by_id?: number | null;
shift_data?: Array<{
from: Date;
to: Date;
project_id?: number | null;
productive: boolean;
billable: boolean;
details: string;
}>;
};
};
};
get/api/v3/office/work_shifts/:employee_id/date/:date
Show employee work shift by date.
Input Schema
object
employee_id: integer
date: date
Typescript
type InputSchema = { employee_id: number; date: Date };
get/api/v3/office/work_shifts/:employee_id/total_missed_balance
Get missed shift time balance.
Input Schema
object
employee_id: integer
Typescript
type InputSchema = { employee_id: number };
get/api/v3/office/work_shifts/pending
Count all work shift per date.
Input Schema
object
starts_at: date
ends_at: date
employee_id?: integer or null
Typescript
type InputSchema = {
starts_at: Date;
ends_at: Date;
employee_id?: number | null;
};
get/api/v3/office/work_shifts/report
Get consolidated report for finance purposes.
Input Schema
object
from: date
to: date
Typescript
type InputSchema = { from: Date; to: Date };