Runs the app in the development mode.
Builds the app for production to the dist folder.
Runs the app for production in the dist folder.
Architecture with standard features: config, health check, logging, middleware log tracing, data validation
In the below sample, search users with these criteria:
- get users of page "1", with page size "20"
 - email="tony": get users with email starting with "tony"
 - dateOfBirth between "min" and "max" (between 1953-11-16 and 1976-11-16)
 - sort by phone ascending, id descending
 
{
  "page": 1,
  "limit": 20,
  "sort": "phone,-id",
  "email": "tony",
  "dateOfBirth": {
    "min": "1953-11-16T00:00:00+07:00",
    "max": "1976-11-16T00:00:00+07:00"
  }
}GET /users/search?page=1&limit=2&email=tony&dateOfBirth.min=1953-11-16T00:00:00+07:00&dateOfBirth.max=1976-11-16T00:00:00+07:00&sort=phone,-id
In this sample, search users with these criteria:
- get users of page "1", with page size "20"
 - email="tony": get users with email starting with "tony"
 - dateOfBirth between "min" and "max" (between 1953-11-16 and 1976-11-16)
 - sort by phone ascending, id descending
 
- total: total of users, which is used to calculate numbers of pages at client
 - list: list of users
 
{
  "list": [
    {
      "id": "ironman",
      "username": "tony.stark",
      "email": "tony.stark@gmail.com",
      "phone": "0987654321",
      "dateOfBirth": "1963-03-24T17:00:00Z"
    }
  ],
  "total": 1
}- GET: retrieve a representation of the resource
 - POST: create a new resource
 - PUT: update the resource
 - PATCH: perform a partial update of a resource, refer to service and mongo
 - DELETE: delete a resource
 
To check if the service is available.
{
  "status": "UP",
  "details": {
    "mongo": {
      "status": "UP"
    }
  }
}[
  {
    "id": "spiderman",
    "username": "peter.parker",
    "email": "peter.parker@gmail.com",
    "phone": "0987654321",
    "dateOfBirth": "1962-08-25T16:59:59.999Z"
  },
  {
    "id": "wolverine",
    "username": "james.howlett",
    "email": "james.howlett@gmail.com",
    "phone": "0987654321",
    "dateOfBirth": "1974-11-16T16:59:59.999Z"
  }
]GET /users/wolverine{
  "id": "wolverine",
  "username": "james.howlett",
  "email": "james.howlett@gmail.com",
  "phone": "0987654321",
  "dateOfBirth": "1974-11-16T16:59:59.999Z"
}{
  "id": "wolverine",
  "username": "james.howlett",
  "email": "james.howlett@gmail.com",
  "phone": "0987654321",
  "dateOfBirth": "1974-11-16T16:59:59.999Z"
}- status: configurable; 1: success, 0: duplicate key, 4: error
 
{
  "status": 1,
  "value": {
    "id": "wolverine",
    "username": "james.howlett",
    "email": "james.howlett@gmail.com",
    "phone": "0987654321",
    "dateOfBirth": "1974-11-16T00:00:00+07:00"
  }
}- Request:
 
{
  "id": "wolverine",
  "username": "james.howlett",
  "email": "james.howlett",
  "phone": "0987654321a",
  "dateOfBirth": "1974-11-16T16:59:59.999Z"
}- Response: in this below sample, email and phone are not valid
 
{
  "status": 4,
  "errors": [
    {
      "field": "email",
      "code": "email"
    },
    {
      "field": "phone",
      "code": "phone"
    }
  ]
}PUT /users/wolverine{
  "username": "james.howlett",
  "email": "james.howlett@gmail.com",
  "phone": "0987654321",
  "dateOfBirth": "1974-11-16T16:59:59.999Z"
}- status: configurable; 1: success, 0: duplicate key, 2: version error, 4: error
 
{
  "status": 1,
  "value": {
    "id": "wolverine",
    "username": "james.howlett",
    "email": "james.howlett@gmail.com",
    "phone": "0987654321",
    "dateOfBirth": "1974-11-16T00:00:00+07:00"
  }
}Perform a partial update of user. For example, if you want to update 2 fields: email and phone, you can send the request body of below.
PATCH /users/wolverine{
  "email": "james.howlett@gmail.com",
  "phone": "0987654321"
}- status: configurable; 1: success, 0: duplicate key, 2: version error, 4: error
 
{
  "status": 1,
  "value": {
    "email": "james.howlett@gmail.com",
    "phone": "0987654321"
  }
}DELETE /users/wolverine1To check if the service is available
{
  "status": "UP",
  "details": {
    "sql": {
      "status": "UP"
    }
  }
}
