backend/research/API Documentation.md

3.2 KiB

API Documentation


Values required in bold.

Accounts | account

field data type metadata
id unsigned integer primary key, auto-increments, generated by database
username string required
email string required
password string required
timezone string
earliest_time string
latest_time string
created_at datetime generated by database

Register an account

POST /api/account/register

Request

A json object for the user to register with username, email, password, timezone, earliest_time and latest_time.

{
  "username": "jean,
  "email": "jean@example.com",
  "password": "really-strong-password",
  "timezone": "Europe/Brussels",
  "earliest_time":"09:30 AM",
  "latest_time":"10:00 PM"
}
Response

A json object for the registered user with id, username, email, timezone, earliest_time and latest_time.

{
  "status": 201,
  "data": {
    "id": 1,
    "username": "jean",
    "email": "jean@example.com",
    "timezone": "Europe/Brussels",
    "earliest_time":"09:30 AM",
    "latest_time":"10:00 PM"l
  }
}

Update an account

PUT /api/account/:id/profile

Request

A json object for the user to register with id and any of username, email, password, timezone, earliest_time, latest_time.

{
  "id": 15,
  "earliest_time":"08:30 AM",
  "latest_time":"08:00 PM"
}
Response

A json object for the registered user with id, username, email, timezone, earliest_time and latest_time.

{
  "status": 200,
  "data": {
    "id": 1,
    "username": "jean",
    "email": "jean@example.com",
    "timezone": "Europe/Brussels",
    "earliest_time":"09:30 AM",
    "latest_time":"10:00 PM"
  }
}

Delete an account

DELETE /api/account/:id

Request

A json object for the user to delete with id.

{
  "id": 15
}
Response

A json object for the deleted user with username and email.

{
  "status": 200,
  "data": {
    "id": 15,
    "username": "jean",
    "email": "jean@example.com"
  }
}

Log in an account

POST /api/account/login

Request

A json object for the user to login with either email or username, and password .

{
  "username": "jean",
  "password": "super-strong-password"
}
Response

A json object for the registered user with id, username, email, timezone, earliest_time and latest_time.

{
  "status": 201,
  "data": {
    "id": 1,
    "username": "jean",
    "email": "jean@example.com",
    "timezone": "Europe/Brussels",
    "earliest_time":"09:30 AM",
    "latest_time":"10:00 PM"l
  }
}