Skip to content

hedgehoglab-engineering/frontend-tech-test-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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"
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published