cyntaria / ConstructionERP-Backend

A REST API backend system for the construction ERP software made with NodeJS
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

As a contractor, I should be able to get all milestone stages, so that I can review their status #90

Open arafaysaleem opened 3 years ago

arafaysaleem commented 3 years ago

Summary

As a contractor, I should be able to get all milestone stages, so that I can review their status.

Acceptance Criteria

Scenario 1: Get all possible milestone stages

GIVEN an contractor is requesting all possible milestone stages in the desktop app WHEN the app hits the /milestone-stages endpoint with a valid GET request THEN the app should receive a status 200 AND in the response, the following information should be returned:

Sample Request/Sample Response

headers: {
    error: 0,
    message: "..."
}
body: [
    {
        stage_id: 2,
        criteria: "Some criteria",
        is_approved: 0,
        project_role_id: 1,
        completion_percentage: 20,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 1
    },
    {
        stage_id: 3,
        criteria: "Some criteria",
        is_approved: 1,
        project_role_id: 1,
        completion_percentage: 10,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 2
    },
    ....
]

Scenario 2: Get all milestone stages filtered by approval status

GIVEN an contractor is requesting all possible milestone stages in the desktop app WHEN the app hits the /milestone-stages endpoint with a valid GET request containing query parameters:

THEN the app should receive a status 200 AND in the response, the following information should be returned:

Sample Request/Sample Response For e.g. we want all milestone stages that haven't been approved yet i.e. is_approved=0

headers: {
    error: 0,
    message: "..."
}
body: [
    {
        stage_id: 2,
        criteria: "Some criteria",
        is_approved: 0,
        project_role_id: 1,
        completion_percentage: 20,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 1
    },
    {
        stage_id: 4,
        criteria: "Some criteria",
        is_approved: 0,
        project_role_id: 2,
        completion_percentage: 10,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 2
    },
    ....
]

Scenario 3: Get all milestone stages for a project role

GIVEN an contractor is requesting all possible milestone stages assigned to a project role in the desktop app WHEN the app hits the /milestone-stages endpoint with a valid GET request containing query parameters:

THEN the app should receive a status 200 AND in the response, the following information should be returned:

Sample Request/Sample Response For e.g. we want all milestone stages with project_role_id=1

headers: {
    error: 0,
    message: "..."
}
body: [
    {
        stage_id: 1,
        criteria: "Some criteria",
        is_approved: 0,
        project_role_id: 1,
        completion_percentage: 20,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 1
    },
    {
        stage_id: 4,
        criteria: "Some criteria",
        is_approved: 1,
        project_role_id: 1,
        completion_percentage: 10,
        review_date: "2021-07-20T00:00:00",
        milestone_id: 2
    },
    ....
]

Resources

Dev Notes

none

Testing Notes

{notes for QA, with examples if applicable}