Deadline Assessment

POST/v1/kpi/assessment-deadline

Create Deadline Settings

This endpoint allows you to create a deadline settings for your assessment.

Request Body

  • Name
    year
    Type
    number
    Description

    Period of the deadline settings

  • Name
    deadline
    Type
    array<object>
    Description

    Array of deadline periods

  • Name
    deadline.*.month_period
    Type
    number
    Description

    Month should be included between 1 - 12

  • Name
    deadline.*.due_date
    Type
    ISODate
    Description

    Due Date/Deadline of the submission

  • Name
    deadline.*.notes
    Type
    string
    Description

    Additional Notes of the settings

Response

  • Name
    message
    Type
    string
    Description

    Success Message

  • Name
    status
    Type
    string
    Description

    Status of the insertion

Request

POST
/v1/kpi/assessment-deadline
const data = {
  year: 2024,
  deadline: [
    { month_period: 1, due_date: "2024-01-31", notes: "" },
    { month_period: 2, due_date: "2024-02-29", notes: "" },
  ]
}
const response = axios.post(`/v1/kpi/assessment-deadline`, data);

Response

{
    "status": "success",
    "message": "Deadline Settings Created Successfully",
}

GET/v1/kpi/assessment-deadline

List Settings

This endpoint allows you to retrieve a paginated list of all your assessment deadline settings.

Request

Optional query

  • Name
    page
    Type
    number
    Description

    The page number of the paginated assessment deadline settings.

    • Default 1
  • Name
    limit
    Type
    number
    Description

    The page size of the paginated assessment deadline settings.

    • Default 10

Response

  • Name
    data
    Type
    array<object>
    Description

    Array of assessment deadline settings object

  • Name
    data.id
    Type
    number
    Description

    Unique identifier for the deadline settings.

  • Name
    data.year
    Type
    string
    Description

    The year.

  • Name
    data.current_deadline
    Type
    string
    Description

    Current assessment deadline

  • Name
    pagination.page
    Type
    number
    Description

    Page number.

  • Name
    pagination.page_size
    Type
    number
    Description

    Number of total document per page.

  • Name
    pagination.page_count
    Type
    number
    Description

    Total page count.

  • Name
    pagination.total_document
    Type
    number
    Description

    Total filtered document.

Request

GET
/v1/kpi/assessment-deadline
const response = axios.get('/v1/kpi/assessment-deadline', {
    params: {
        page:1,
        limit: 10
    }
})

Response

{
  "data": [
    {
      "id": 102189,
      "year": 2024,
      "current_deadline": "2024-09-09T10:00:00.000Z",
    },
  ],
  "pagination": {
    "page": 1,
    "page_size": 1,
    "page_count": 1,
    "total_document": 1
  }
}

PUT/v1/kpi/assessment-deadline/:year

Update Deadline Settings

This endpoint allows you to update a deadline settings for your assessment based on a year.

Request Body

  • Name
    year
    Type
    number
    Description

    Period of the deadline settings

  • Name
    deadline
    Type
    array<object>
    Description

    Array of deadline periods

  • Name
    deadline.*.month_period
    Type
    number
    Description

    Month should be included between 1 - 12

  • Name
    deadline.*.due_date
    Type
    ISODate
    Description

    Due Date/Deadline of the submission

  • Name
    deadline.*.notes
    Type
    string
    Description

    Additional Notes of the settings

Response

  • Name
    message
    Type
    string
    Description

    Success Message

  • Name
    status
    Type
    string
    Description

    Status of the update

Request

PUT
/v1/kpi/assessment-deadline/:year
const data = {
  year: 2024,
  deadline: [
    { month_period: 1, due_date: "2024-01-31", notes: "" },
    { month_period: 2, due_date: "2024-02-29", notes: "" },
  ]
}
const response = axios.put(`/v1/kpi/assessment-deadline/{year}`, data);

Response

{
    "status": "success",
    "message": "Deadline Settings Updated Successfully",
}

PUT/v1/kpi/assessment-deadline/:year

Delete Deadline Settings

This endpoint allows you to delete a deadline settings for your assessment on a year.

Request Params

  • Name
    year
    Type
    number
    Description

    Period of the deadline settings

Response

  • Name
    message
    Type
    string
    Description

    Success Message

  • Name
    status
    Type
    string
    Description

    Status of the deletion

Request

DELETE
/v1/kpi/assessment-deadline/:delete
const year = '2024';
const response = axios.delete(`/v1/kpi/assessment-deadline/${year}`, data);

Response

{
    "status": "success",
    "message": "Deadline Settings Deleted Successfully",
}

GET/v1/reports/penalties

List Late Penalties Reports (Denda)

This endpoint allows you to retrieve a paginated list of all employee's late penalties' report.

Request

Optional query

  • Name
    page
    Type
    number
    Description

    The page number of the paginated reports.

    • Default 1
  • Name
    limit
    Type
    number
    Description

    The page size of the paginated reports.

    • Default 10
  • Name
    filter.year
    Type
    number
    Description

    The year filter of the paginated reports.

  • Name
    filter.month
    Type
    number
    Description

    The month filter of the paginated reports.

  • Name
    filter.current
    Type
    boolean
    Description

    If set to true, it returns a response with filter current user id

Response

  • Name
    data
    Type
    array<object>
    Description

    Array of penalties object

  • Name
    data.id
    Type
    number
    Description

    Unique identifier for the penalty.

  • Name
    data.issued_at
    Type
    ISODate
    Description

    The issued date.

  • Name
    data.amount
    Type
    number
    Description

    Penalty amount

  • Name
    data.name
    Type
    string
    Description

    Target User's Name

  • Name
    data.job_title
    Type
    string
    Description

    Target User's Job Title

  • Name
    data.department
    Type
    string
    Description

    Target User's Department

  • Name
    pagination.page
    Type
    number
    Description

    Page number.

  • Name
    pagination.page_size
    Type
    number
    Description

    Number of total document per page.

  • Name
    pagination.page_count
    Type
    number
    Description

    Total page count.

  • Name
    pagination.total_document
    Type
    number
    Description

    Total filtered document.

Request

GET
/v1/reports/penalties
const response = axios.get('/v1/reports/penalties', {
    params: {
      page:1,
      limit: 10,
      filters: {
        year: 2023,
        month: 1
      },
    }
})

Response

{
  "data": [
    {
      "id": 102189,
      "issued_at": "2024-09-09T10:00:00.000Z",
      "amount": 100000,
      "name": "John Doe",
      "job_title": "Quality Control",
      "department": "IT"
    },
  ],
  "pagination": {
    "page": 1,
    "page_size": 1,
    "page_count": 1,
    "total_document": 1
  }
}