Skip to content

Request Handler Microservice

Rao Bhethanabotla edited this page Nov 19, 2025 · 18 revisions

Request Handler Microservice

Request Object

This contains fields a help request object can represent.

  • requesterId: Identifies the user making the request.
  • requestId: represents request unique ID to help uniquely identify the request and avoid duplication.
  • requestDescription: Describes the help request.
  • requestTime: Indicates when the request was made.
  • requestStatus: Represents the current status of the request.
  • requestPriority: Represents urgency or importance level of the help request. It is represented with 'RequestPriority' enum.
  • requestLocation: Specifies location where help is needed. This can be address or coordinates.
  • requestCategory: Represents type of help needed. It is represented with 'RequestCategory' enum.
  • requestType: Specifies whether request requires "in-person" assistance or can be addressed digitally. It is represented with 'RequestType' enum.
  • requestFor: Specifies whether request is for self or someone else.

RequestStatus Enum

Represents various states a help request can transition through.

  • Created
  • Matching Volunteer
  • In Progress
  • Resolved
  • Cancelled <-- Done by our system admins because it is a bad request or beneficiary is NOT responding
  • Deleted <-- Done by the beneficiary
  •   Rated By Beneficiary
    
  •   Rated By Volunteer
    

RequestPriority Enum

Represents values a help request's urgency/importance level can have.

  • Low
  • Medium
  • High
  • Critical (Note: we will NOT handle any life threatening use cases)

Represents values for the category of help request can have.

Request For enum

  • Self
  • Other<-- User is filing request for others. This other person does NOT have account with our system. We should first create this user in our system before creating the request. We need a little more description of this person such as age, sex, language preference etc. These fields will be conditionally shown on the screen.

RequestType Enum

Represents values type of help request. This is helpful for service providers in understanding the nature of the request and how best to assist the user.

  • In_Person/In_Place <-- Location based help. Geo spatial location is needed for this
  • Remote <-- Remote help. Location is NOT important here.

Request Microservice Design

This contains required endpoints for creating, updating, and retrieving help requests.

  • Controller: Defines REST endpoints to handle incoming help request.
  • Service: Implements business logic for managing help request.
  • Repository: Defines interface with the database for CRUD operations.
  • Documentation: Documents API endpoints using tools like Swagger for better understanding and consumption by other developers (?).

ToDos

  • Update with AWS step functions.

Flow Diagram (.PNG)

This contains flow diagram of processing of the help request. Please refer to Embed-diagrams (https://github.com/jgraph/drawio/wiki/Embed-Diagrams) documentation from GitHub to read/write this image.

Clone this wiki locally