Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a contractor, I should be able to get all ordered materials for a project, so that I can understand how much of each was ordered and how much did it cost #84

Open
arafaysaleem opened this issue Jul 26, 2021 · 0 comments
Labels
user story A brief explanation of a functionality or an interaction with the system, from a user's perspective

Comments

@arafaysaleem
Copy link
Contributor

Summary

As a contractor, I should be able to get all ordered materials for a project, so that I can understand how much of each was ordered and how much did it cost.

Acceptance Criteria

Scenario 1: Search for all possible materials orders in a project

GIVEN an contractor is requesting all possible materials in the desktop app
WHEN the app hits the /projects/:id/materials endpoint with a valid GET request, containing the path parameter:

  • :id, the unique id of the project for which the materials are needed.

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

  • headers
  • list of materials

Sample Request/Sample Response
For e.g. If we request ordered materials for project id 1:

headers: {
    error: 0,
    message: "..."
}
body: [
    {
        order_id: 0,
        mat_id: 1,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "tonnes",
        quantity: 2
    },
    {
        order_id: 2,
        mat_id: 2,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "kg",
        quantity: 20
    },
    {
        order_id: 2,
        mat_id: 3,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "g",
        quantity: 200
    },
    ....
]

Scenario 2: Search for all possible materials orders in a project for a material

GIVEN an contractor is requesting all possible materials orders in the desktop app
WHEN the app hits the /projects/:id/materials endpoint with a valid GET request, containing:-"

  • the path parameter:
    • :id, the unique id of the project for which the materials orders are needed.
  • the query parameters:
    • mat_id="some_id", where some_id is the mat_id of that material**

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

  • headers
  • list of material orders having that project_id and mat_id

Sample Request/Sample Response
For project id 1 and query parameter mat_id=3:

headers: {
    error: 0,
    message: "..."
}
body: [
    {
        order_id: 0,
        mat_id: 3,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "tonnes",
        quantity: 2
    },
    {
        order_id: 2,
        mat_id: 3,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "kg",
        quantity: 20
    },
    {
        order_id: 2,
        mat_id: 3,
        milestone_id: 0,
        project_id: 1,
        price: 1000,
        quantity_unit: "g",
        quantity: 200
    },
    ....
]

Resources

  • Development URL: {Here goes a URL to the feature on development API}
  • Production URL: {Here goes a URL to the feature on production API}

Dev Notes

Testing Notes

{notes for QA, with examples if applicable}

@arafaysaleem arafaysaleem added the user story A brief explanation of a functionality or an interaction with the system, from a user's perspective label Jul 26, 2021
@arafaysaleem arafaysaleem mentioned this issue Jul 26, 2021
17 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
user story A brief explanation of a functionality or an interaction with the system, from a user's perspective
Projects
None yet
Development

No branches or pull requests

1 participant