Skip to content

User Endpoint

Yan_Badea edited this page Sep 29, 2021 · 5 revisions

Wiki ▸ Endpoints ▸ User

User

Contains data of all users available on our e-learning platform.

The User endpoint is a representation of the users added to the application. The endpoint's purpose is to facilitate accessing, creating, updating and deleting these resources.

Endpoints

GET /users/

Retrieves all of the available users.

Sample Response

Status code: 200
Body:

[
  {
    "id": "538228c9-7ee4-4bc8-a781-e483a7cec4f5",
    "name": "Test User",
    "username": "testEmail@yahoo.com",
    "password": "$2a$10$UPNeB/dNFhkeCb1vgGjdz.yxo0.5lT8Y50QfMTx9mcXPTqRSCoGBC",
    "roles": [
          {
              "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
              "name": "ROLE_STUDENT"
          }
      ]
    },
  {
    "id": "38472327-38ab-4611-a645-1b572638917a",
    "name": "Test User2",
    "username": "testEmail2@yahoo.com",
    "password": "$2a$10$BsMeB/dNFhkeCb1vgGjdz.yxo0.5lT8Y50QfMTx9mcXPTRg6b8J6q",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
  },
]

GET /users/:id

Retrieves the user with the provided id.

Parameters

Path Parameters

Path Parameter Description
:id The id of the user entry.

Sample Response

Status code: 200
Body:

{
    "id": "538228c9-7ee4-4bc8-a781-e483a7cec4f5",
    "name": "Test User",
    "username": "testEmail@yahoo.com",
    "password": "$2a$10$UPNeB/dNFhkeCb1vgGjdz.yxo0.5lT8Y50QfMTx9mcXPTqRSCoGBC",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Status code: 404
Body:

{
    "error": "Not Found"
}

GET /users/username

Retrieves the user with the provided username.

Parameters

Query Parameters

Query Parameter Required/Optional Description Type
username Required The username of the user entry String

Sample Response

Status code: 200
Body:

{
    "id": "538228c9-7ee4-4bc8-a781-e483a7cec4f5",
    "name": "Test User",
    "username": "testEmail@yahoo.com",
    "password": "$2a$10$UPNeB/dNFhkeCb1vgGjdz.yxo0.5lT8Y50QfMTx9mcXPTqRSCoGBC",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Status code: 404
Body:

{
    "error": "Not Found",
}

GET /users/role/:role

Retrieves the users with the provided role.

Parameters

Path Parameters

Path Parameter Description
:role The role of the user entry.

Sample Response

Status code: 200
Body:

[
    {
        "id": "54c303ff-f0dc-42ba-aea8-76ece1bb148c",
        "name": "Test User2",
        "username": "testEmail2@yahoo.com",
        "password": "$2a$10$6d6pjjsiADouY9ORv6iP6.b6XHmtjOxiCnskjQLwKs95vEcry3cqS",
        "roles": []
    },
    {
        "id": "538228c9-7ee4-4bc8-a781-e483a7cec4f5",
        "name": "Test User",
        "username": "testEmail@yahoo.com",
        "password": "$2a$10$UPNeB/dNFhkeCb1vgGjdz.yxo0.5lT8Y50QfMTx9mcXPTqRSCoGBC",
        "roles": []
    },
]

Status code: 200
Body:

[]

GET /users/token/refresh

Offers a new access token for authorization based on the Refresh Token.

Sample Response

Status code: 200
Body:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0RW1haWxAeWFob28uY29tIiwicm9sZXMiOlsiUk9MRV9TVFVERU5UIl0sImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC91c2Vycy90b2tlbi9yZWZyZXNoIiwiZXhwIjoxNjMzMDE3MzYxfQ.fv72Zm24IF-RETNaJVkbR4iCIYMLD6-RU2KrPEpTYKw",
    "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0RW1haWxAeWFob28uY29tIiwicm9sZXMiOlsiUk9MRV9TVFVERU5UIl0sImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC91c2Vycy9sb2dpbiIsImV4cCI6MTYzMzAxNzM2MX0.kG_iDzDUzgq3QVfIbibyFMrgAWgd0ucPmnQvMC-SCC0"
}

POST /users/

Adds an entry composed in the body as an user.

If the name, username or roles attribute is null or empty, it will return an error. The password attribute needs to be at least 8 characters and contain at least one small letter, one capital letter, one number and one special character.

Sample Response

Status code: 201
Request Body:

{
    "name": "Test User3",
    "username": "testEmail2@yahoo.com",
    "password": "!TestPassword1234",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Response Body:

{
    "id": "2e221cf4-baeb-497d-b32b-baa5d1cc416a",
    "name": "Test User3",
    "username": "testEmail2@yahoo.com",
    "password": "$2a$10$B59JymHGywXcpETqr/7F5Orhc75ihtSnpggb864/7f.9voJxq..8q",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Status code: 400
Request Body:

{
    "name": "",
}

Response Body:

{
    "error": "POST: User Invalid Name",
}

Status code: 400
Request Body:

{
    "username": "",
}

Response Body:

{
    "error": "POST: User Invalid Username",
}

Status code: 400
Request Body:

{
    "roles": "",
}

Response Body:

{
    "error": "POST: User Invalid Roles",
}

Status code: 400
Request Body:

{
    "password": "",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "test",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword1234",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

POST /users/register

Registers a new User with the default role.

If the name or username is null or empty, it will return an error. The password attribute needs to be at least 8 characters and contain at least one small letter, one capital letter, one number and one special character.

Sample Response

Status code: 201
Request Body:

{
    "name": "Test User4",
    "username": "testEmail3@yahoo.com",
    "password": "!TestPassword1234"
}

Response Body:

{
    "id": "f1a1c2e0-6591-47f3-b9d9-3a4a2386164c",
    "name": "Test User4",
    "username": "testEmail3@yahoo.com",
    "password": "$2a$10$bRm6.9m2H/temPq7t8mgzeTQ5udk5wRovdO2yIMZQBhOzMXMpRdca",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Status code: 400
Request Body:

{
    "name": "",
}

Response Body:

{
    "error": "POST: User Invalid Name",
}

Status code: 400
Request Body:

{
    "username": "",
}

Response Body:

{
    "error": "POST: User Invalid Username",
}

Status code: 400
Request Body:

{
    "password": "",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "test",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword1234",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

PATCH /user/:id

Sends an entity at the specified id with the user entry that has been updated.

Parameters

Path Parameters

Path Parameter Description
:id The id of the user entry.

Sample Response

Status code: 200
Request Body:

{
    "name": "Modified User",
    "username": "testEmail3@yahoo.com",
    "password": "!TestPassword1234",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Response Body:

{
    "id": "f1a1c2e0-6591-47f3-b9d9-3a4a2386164c",
    "name": "Modified User",
    "username": "testEmail3@yahoo.com",
    "password": "$2a$10$uETw0AInKmLP04eZkxT49eJ8hEejLYUfi/C6IZnst3JedehqeI5Jq",
    "roles": [
        {
            "id": "662d426a-cfb9-4f9e-ac50-ae719194257d",
            "name": "ROLE_STUDENT"
        }
    ]
}

Status code: 400
Request Body:

{
    "username": "testEmail@yahoo.com"  
}

Response Body:

{
    "error": "POST: Username already used",
}

Status code: 400
Request Body:

{
    "name": ""  
}

Response Body:

{
    "error": "POST: User Invalid Name",
}

Status code: 400
Request Body:

{
    "username": ""  
}

Response Body:

{
    "error": "POST: User Invalid Username",
}

Status code: 400
Request Body:

{
    "password": ""  
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "roles": ""  
}

Response Body:

{
    "error": "POST: Role not found",
}

Status code: 400
Request Body:

{
    "password": "test",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

Status code: 400
Request Body:

{
    "password": "Testpassword1234",
}

Response Body:

{
    "error": "POST: User Invalid Password",
}

DELETE /users/:id

Deletes the user with the provided id.

Parameters

Path Parameters

Path Parameter Description
:id The id of the user entry.

Sample Response

Status code: 200
Body:

Status code: 404
Body:

{
    "error": "Not Found",
}

Getting Started

Conventions

  1. General

  1. REST API

  1. E-Learning App

Endpoints

Custom Components

Themes

Packages Used

  1. Global

  1. REST API

  1. E-Learning App

Clone this wiki locally