0.1.9 • Published 7 months ago

@hedgehoglab/frontend-tech-test-server v0.1.9

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

hedgehog lab logo

@hedgehoglab/frontend-tech-test-server

This package provides a simple temporarily persistent server to accompany the technical test set out for new candidates.

Usage

Running the following command will start the server on your local machine.

npx @hedgehoglab/frontend-tech-test-server@latest

Documentation

The server exposes a handful of endpoints for the purposes of the technical test. Data will be persisted for the duration of the process. Once the process is stopped the data will be lost.

All endpoints accept JSON, so an appropriate Content-Type should be used.

Authentication

Endpoints requiring authentication should pass the Authorization header to the endpoint, with a value of Bearer <user token> where <user token> is replaced with the token returned from the /api/login endpoint.

Endpoints

POST /api/register

Register a new user.

Request Body
{
    "first_name": "string",
    "last_name": "string",
    "email": "string",
    "password": "string",
    "password_confirmation": "string"
}
Response
// Status 200
{
    "id": "number",
    "first_name": "string",
    "last_name": "string",
    "email": "string",
    "display_picture": "string"
}
// Status 422
{
    "statusCode": 422,
    "data": {
        "errors": {
            "first_name": [
                "string"
            ],
            "last_name": [
                "string"
            ],
            "email": [
                "string"
            ],
            "password": [
                "string"
            ],
            "password_confirmation": [
                "string"
            ]
        }
    }
}
// Status 409
{
    "statusCode": 409,
    "data": {
        "message": "string"
    }
}

POST /api/login

Login as a registered user.

Request Body
{
    "email": "string",
    "password": "string"
}
Response
// Status 200
{
    "token": "string"
}
// Status 422
{
    "statusCode": 422,
    "data": {
        "message": "string"
    }
}

GET /api/users

Get a list of users.

🔐 Authentication required

Query params
{
    "per_page": "number", // optional, default: 10
    "page": "number" // optional, default: 1
}
Response
// Status 200
{
    "page": "number",
    "per_page": "number",
    "total": "number",
    "total_pages": "number",
    "data": [
        {
            "id": "number",
            "first_name": "string",
            "last_name": "string",
            "email": "string",
            "display_picture": "string"
        }
    ]
}
// Status 401
{
    "statusCode": "number",
    "data": {
        "message": "string"
    }
}

POST /api/users

Create a new user.

🔐 Authentication required

Request Body
{
    "first_name": "string",
    "last_name": "string",
    "email": "string"
}
Response
// Status 200
{
    "id": "number",
    "first_name": "string",
    "last_name": "string",
    "email": "string",
    "display_picture": "string"
}
// Status 401
{
    "statusCode": "number",
    "data": {
        "message": "string"
    }
}

DELETE /api/users/:id

Delete a user.

🔐 Authentication required

Response
// Status: 204
// Status 422
{
    "statusCode": 422,
    "data": {
        "message": "string"
    }
}
// Status 401
{
    "statusCode": 401,
    "data": {
        "message": "string"
    }
}
0.1.9

7 months ago

0.1.8

7 months ago

0.1.7

7 months ago

0.1.6

7 months ago

0.1.5

7 months ago

0.1.4

7 months ago