Appearance
Progress Reporting
List Progress Report
Available on: NEXT.
List all progress reports. When requesting user is an admin, the system will return all progress reports. Otherwise, the system will return progress reports of the requesting user.
http
GET /v2/progress-reportsURL Query Params:
| Name | Type | Description |
|---|---|---|
user_node_id | string | User Node ID. Only works when requesting user is admin. |
date | string | number | Date in ISO 8601 format or in YYYY-MM-dd format. If not provided. Will return all records. |
submitted | boolean | Wether to return submitted reports. Defaults to false |
order_by | string | Field to order by. Default date (In conjugation with sort). Values are date, updatedAt |
sort | string | asc or desc. Default desc. |
Response:
Array of ProgressReportingResponse.
Get Progress Report By ID
Available on: NEXT.
http
GET /v2/progress-reporting/:idURL Params:
| Name | Type | Description |
|---|---|---|
id | string | Required. Progress Report Node ID. |
URL Query Params:
| Name | Type | Description |
|---|---|---|
dottie | boolean | Optional. If false, nested object will be returned as a flat object with dot nation. Default is true. |
Response:
Save Progress Report
Available on: NEXT. This endpoint deprecates
POST /progress-reportingendpoint on the previous version.
A timesheet/time reporting data can also be created on this endpoint. The system will create a new timesheet and associate it with the progress report if the time_reporting_id is not provided. If the time_reporting_id is provided, the system will update the timesheet and associate it with the progress report.
Saving a progress report will not send an email. The system will only send an email if the progress report is submitted which is done by the "Send Progress Report" endpoint.
http
POST /v2/progress-reportingRequest Body:
Array of ProgressReportingRequest.
Example:
shell
# This will create a progress reporting record
curl -X POST "http://example.com/v2/progress-reporting" \
-H "Content-Type: application/json" \
-d '[
{
"status_node_id": "status123",
"time_reporting_id": "timeRep456",
"project_node_id": "project789",
"progress": 75,
"description": "Completed the initial phase of the project.",
"from_time": "09:00",
"to_time": "17:00",
"date": "2023-04-05",
"member_id": "member012",
"member_node_id": "memberNode345"
},
{
"status_node_id": "status1234",
"time_reporting_id": "timeRep1456",
"project_node_id": "project1789",
"progress": 175,
"description": "Completed the initial phase of the project.",
"from_time": "09:00",
"to_time": "17:00",
"date": "2023-04-05",
"member_id": "member012",
"member_node_id": "memberNode345"
}
]'js
// The first data contains ID associated with TimeReport,
// related data will be updated (from_time, to_time, task id, project id).
// The first data also contains ProgressReport data
// such as "progress", "time_reporting_id" but not an ID to identify the progress report,
// this will create a new progress report record and associate the TimeReport with it.
// The second data will create a timesheet and progress report.
[
{
"project_node_id": "LfnnQ5K1EreysvG3",
"task_node_id": "AcTWJIYp4ybCjDjJ",
"status_node_id": "e21a3f1b-3bd3-47a3-8b56-bc928f2fb68a",
"progress": 20,
"description": "Should be created is updated",
"from_time": "09:00",
"to_time": "17:00",
"date": "2024-04-05",
"time_reporting_node_id": "7aED69d3yGWEErGP"
},
{
"project_node_id": "LfnnQ5K1EreysvG3",
"task_node_id": "AcTWJIYp4ybCjDjJ",
"status_node_id": "e21a3f1b-3bd3-47a3-8b56-bc928f2fb68a",
"progress": 20,
"description": "Should be created 2",
"from_time": "09:00",
"to_time": "17:00",
"date": "2024-04-05"
}
]ProgressReportingRequest
| Name | Type | Description |
|---|---|---|
status_node_id | string | Required. Status Node ID. |
time_reporting_id | string | number | Optional. Time Reporting ID associated for the report. |
project_node_id | string | Required. Project Node ID. |
progress | number | Required (but not validated). Progress percentage of task. Decimal number is accepted |
description | string | Required (but not validated). Description of the task / report. Plain text or HTML from Quill Editor. |
from_time | string | Required (but not validated). Start time. Format HH:mm. |
to_time | string | Required (but not validated). End time. Format HH:mm. |
date | Date | Required (but not validated). Date. Format YYYY-MM-DD. |
member_id | string | number | Only for Admin *Member ID. Remove the field on the request if the user is not an admin. |
member_node_id | string | Only for Admin *Member Node ID. Remove the field on the request if the user is not an admin. |
* member_id and member_node_id is only required if the user is an admin, otherwise, the system reject the request if the user is not an admin. This is used for a case where the admin can submit a progress report on behalf of the employee/member.
Send Progress Report
NOTE
Available on: NEXT.
IMPORTANT
This endpoint has rate-limiting. The system will only allow sending progress report once every 1 minute.
Similar to Save Progress Report, but this endpoint will send an email to the user when the progress report is submitted.
http
POST /v2/progress-reporting/sendRequest Input is the same as Save Progress Report.
Rules:
- The input uses the same structure as the
ProgressReportingRequestobject. - When
time_reporting_idis provided, the system will update the progress report with the provided ID. - Build the
time_reportingobject. Get the following fields:project_idmember_id: If admin, obtain from themember_idfield. Otherwise, get the user ID from the token.member_node_id: Same asmember_id. Can be also retried on the Users table.from_timeandto_timetotal_hours: resolve usingtimeRangeToDecimalHoursutilsdate: Datetimetask_id
Update Progress Report
Available on: NEXT.
Use only this endpoint on certain scenarios (When a progress report have an associated time-sheet), it is recommended to use the Save Progress Report endpoint for updating progress reports and provide the Progress Report Node ID and the Time Reporting Node ID to update the progress report.
Updates a single Progress Report by NodeID. This also updates the associated Time Sheet.
- A Progress Report can only be updated by an Admin or by the User who created the Time Report.
- When a Progress Report has been submitted it cannot be updated.
- When the system identified that
from_timeandto_timeis not on a computable range, the system will try to set thetotal_hoursto0
http
PATCH /v2/progress-reporting/:node_idURL Parameters:
| Name | Type | Description |
|---|---|---|
node_id | string | The Node ID of the Progress Report |
Request Body:
Progress Report object.
| Name | Type | Description |
|---|---|---|
status_node_id | string | Status Node ID. |
project_node_id | string | Project Node ID. (Time Sheet) |
task_node_id | string | Task Node ID. (Time Sheet) |
progress | number | Progress percentage of task. Decimal number is accepted |
description | string | Description of the task / report. Plain text or HTML from Quill Editor. |
from_time | string | Start time. Format HH:mm. (Time sheet) |
to_time | string | End time. Format HH:mm. (Time sheet) |
date | Date | . Date. Format YYYY-MM-DD. |
member_node_id | string | Only for Admin *Member Node ID. Remove the field on the request if the user is not an admin. |
Delete a Progress Report
Deletes a Progress Report by NodeID
- A Progress Report can only be deleted by an Admin or by the User who created the Time Report.
- When a Progress Report has been submitted it cannot be deleted.
- The deleted Progress Report will also delete the associated Time Sheet if there is any.
- Delete action performed is a soft delete.
http
DELETE /v2/progress-reporting/:node_idURL Parameters:
| Name | Type | Description |
|---|---|---|
| node_id | string | Progress Report NodeId |
Interfaces
Defines the structure used by the API.
ProgressStatus
This is the status used for the progress report.
| Value | Name | node_id |
|---|---|---|
1 | Not Started | 5a200e77-0fab-4600-b135-a35ca3940a8c |
2 | In Progress | e21a3f1b-3bd3-47a3-8b56-bc928f2fb68a |
3 | Cancelled | 1618ee29-5b0f-404b-b300-9cd36578df21 |
4 | Resumed | ea920c9b-1deb-4fe6-b4ef-d0d98255658d |
5 | Started | f6404aa2-9feb-400a-8d6c-71b91632d962 |
6 | Completed | 0aa081d9-f7b5-4745-839c-49e42cc5462c |
ProgressReportingResponse
| Name | Type | Description |
|---|---|---|
id | string | number | Progress Report Node ID. |
node_id | string | Node ID. |
member_id | string | number | Member ID. |
member_node_id | string | Member Node ID. |
user_id | string | number | User ID. |
user_node_id | string | User Node ID. |
time_reporting_id | string | number | Time Reporting ID. |
time_reporting_node_id | string | Time Reporting Node ID. |
status | string | Status. |
status_node_id | string | Status Node ID. |
date | Date | Date. |
description | string | Description. |
remarks | string | Remarks. |
progress | number | Progress. |
createdAt | Date | Creation date. |
updatedAt | Date | Last update date. |
total_hours | number | Total hours. |
time_reporting | TimeReportingResponse | Time Reporting object. |
task | TasksResponse | Task object. |
user | UserResponse | User object. The creator of the report. |
member | UserResponse | User object. The member associated on the report |
TimeReportingResponse
| Name | Type | Description |
|---|---|---|
id | string | number | Time Reporting ID. |
project_id | string | number | Project ID. |
member_id | string | number | Member ID. |
user_id | string | number | User ID. |
task_id | string | number | Task ID. |
project_node_id | string | Project Node ID. |
member_node_id | string | Member Node ID. |
user_node_id | string | User Node ID. |
task_node_id | string | Task Node ID. |
date | Date | Date. |
createdAt | Date | Creation date. |
updatedAt | Date | Last update date. |
description | string | Description. |
from_time | string | Start time. |
to_time | string | End time. |
TasksResponse
| Name | Type | Description |
|---|---|---|
user_node_id | string | User Node ID. |
date | Date | Date. |
createdAt | Date | Creation date. |
updatedAt | Date | Last update date. |
description | string | Description. |
from_time | string | Start time. |
to_time | string | End time. |
UserResponse
| Name | Type | Description |
|---|---|---|
id | string | number | User ID. |
email | string | User email. |
avatar | string | User avatar URL. |
node_id | string | User Node ID. |
full_name | string | User full name. |
first_name | string | User first name. |
last_name | string | User last name. |
employee_no | string | number | User employee number. |