Project

General

Profile

Actions

roos-fs tasks #310

open

(STORAGE) API for Warehouse Picker (Mobile App Integration)

Added by Vadim Pariev 9 months ago. Updated 5 days ago.

Status:
Closed
Priority:
Normal
Start date:
08/18/2025
Due date:
% Done:

0%

Estimated time:
16:00 h

Description

API Endpoints that needs to be created

Business Logic

  • API must ensure a Monteur cannot select a spare part that belongs to a different customer.
  • If a serial number does not match the assigned spare part → return 400 Bad Request with error message.
  • When a service is completed → automatically update spare part’s status to Installed and link it to:
  1. Service
  2. Vehicle
  1. Localization

All API responses must return messages in English and German
Validate the solution with @vi.grishkova@gmail.com

Acceptance criterea:

  • Mobile app can fetch spare parts per vehicle/customer via API.
  • API validates spare part selection and serial number.
  • API prevents assigning spare parts to the wrong customer/vehicle.
  • When service = completed → spare part status is updated to Installed and linked with service/vehicle.
  • All error/success messages available in English + German.
Actions #1

Updated by Vadim Pariev 9 months ago

  • Assignee set to Vitalii Shevchenko
Actions #2

Updated by Vadim Pariev 9 months ago

  • Status changed from Backlog to Open
Actions #3

Updated by Vadim Pariev 9 months ago

  • Description updated (diff)
Actions #4

Updated by Vitalii Shevchenko 8 months ago

  • Estimated time set to 80:00 h
Actions #5

Updated by Vadim Pariev 7 months ago

  • Assignee changed from Vitalii Shevchenko to Anton Obolientsev

Please Allign implimentation with @vitalii.shevchenko@matecube.dev

Actions #6

Updated by Alex Katasonov 7 months ago

  • Assignee changed from Anton Obolientsev to Alex Katasonov
Actions #7

Updated by Alex Katasonov 7 months ago

  • Status changed from Open to In progress
Actions #8

Updated by Alex Katasonov 7 months ago

  • Status changed from In progress to In review
Actions #9

Updated by Alex Katasonov 7 months ago

  • Status changed from In review to In progress
Actions #10

Updated by Alex Katasonov 7 months ago

  • Status changed from In progress to Open
Actions #11

Updated by Vadim Pariev 7 months ago

  • Assignee changed from Alex Katasonov to Max Zadorozhniy
Actions #12

Updated by Alex Katasonov 7 months ago

  • Estimated time deleted (80:00 h)
Actions #13

Updated by Vadim Pariev 7 months ago

  • Description updated (diff)
Actions #14

Updated by Max Zadorozhniy 7 months ago

  • Status changed from Open to In progress
Actions #15

Updated by Max Zadorozhniy 7 months ago

  • Estimated time set to 16:00 h
Actions #16

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In progress to In review
Actions #17

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In review to In progress
Actions #18

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In progress to In review
Actions #19

Updated by Anton Obolientsev 7 months ago

  • Status changed from In review to Open
Actions #20

Updated by Max Zadorozhniy 7 months ago

  • Status changed from Open to In progress
Actions #21

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In progress to In review
Actions #22

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In review to In progress
Actions #23

Updated by Max Zadorozhniy 7 months ago

  • Status changed from In progress to In review
Actions #24

Updated by Anton Obolientsev 7 months ago

  • Status changed from In review to Deployed (QA)
Actions #25

Updated by Olena Tretjakova 6 months ago

Environment: Staging.

All acceptance criteria were implemented successfully, except for the German localization.

Preconditions:

  1. Create a new Customer. (Customer Name: OlenaTestAPI, Customer ID: 33).
  2. Create a new Vehicle that belongs to the Customer created in step 1.(VIN: OT111111111111111, ID: 26480).
  3. Create a new Task Template for the Customer in step 1. (Task Template Name: TestAPI, ID: 42702).
  4. Create a new Service for a vehicle in step 2. (Service Name: SeviceTestAPI, Task: TestAPI).
  5. Import spare parts. (Product, Serial Number, Customer ID:
    TestAPI, SN0001, 33
    TestAPI, SN0002, 33
    TestAPI, SN0003, 33
    TestAPI, SN0004, 33)

Steps to reproduce:

  1. Open Postman.
  2. Create endpoint:
  1. Send request.
  2. Response: 200 ok (ID spare parts: 302, 303, 304, 305).
    response https://screenrec.com/share/QSfUcKm7gR
    staging https://screenrec.com/share/8iATNnLoyW
  3. Send reques without authentification token.
  1. Change and send request:
  1. The response is 200 ok and json with information about the spare part with ID 302. https://screenrec.com/share/nbao8Wv4tX
  2. Change and send request:
  1. The response is 404 'Not found'. https://screenrec.com/share/x1rL2qVTCe
  2. Send reques:
  1. Complet the service with the spare part 303.
  2. Send request:
  1. The response is 200 ok and json with information about the spare part with ID 303. https://screenrec.com/share/XqzUscx6lM
    In staging: https://screenrec.com/share/XxEZa4q7Tj
  2. Import spare parts. (Product, Serial Number, Customer ID: TestAPI, SN0002, 33). The status spare part with ID 303 change from 'Installed' to 'In stok'.
  3. Send request:
  1. The response is 200 ok and json with information a
    https://screenrec.com/share/6L0cJHIqnl
    The information about Location, Service and Vehicle is absent.
    In staging https://screenrec.com/share/s01CPzrYGJ
  2. Send the request
  1. Send request.
    The API responses does not support German localization.
    https://screenrec.com/share/YC0z1FWRMh

Expected Result:

  1. The API endpoint that gets spare parts by Customer ID contains only the spare parts that belong to that customer.
  2. The API endpoint that get a spare part by its ID:
  • When the serial number exists in the system → the response code is 200 OK.
  • When the serial number does not exist in the system → the response code is 400 Bad Request.
  • When the service using the specific spare part is completed, the API response must contain:
    Service ID, Vehicle ID, Location ID, and the status Installed.
  • When the spare part status changes from "installed" to "in stock", the response of the GET request by ID contains: location_id: null, service_id: null, and vehicle_id: null.
    • The response message must be available in English and German.

Actual Result:

  1. The API request get spare parts by Customer ID return spare parts only that Customer.
  2. The API Reques get spare part by ID:
  • Return 200 ok, if this ID exsists in system;
  • Return 400 Bad Request, unless that spare part exists in system;
  • Return in response Service ID, Vehicle ID, Location ID, if the the status that spare part is Installed.
  • Return in response location_id: null, service_id: null, and vehicle_id: null, if the the status that spare part canges from 'Installed' to 'In stok'.
  • These endpoinds do not nave implimentation of localisation.
Actions #26

Updated by Olena Tretjakova 6 months ago

  • Status changed from Deployed (QA) to Ready for Deployment (prod)
Actions #27

Updated by Vadim Pariev 6 months ago

  • Status changed from Ready for Deployment (prod) to Closed
Actions #28

Updated by Albert Katasonov 5 days ago

  • Project changed from 8 to Roos-fs-ZIP
Actions

Also available in: Atom PDF