mrbontor / app-job-list

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

app job list

Requirements

Settings & Configuring

App config

Please check the file env.example and change to .env there are 2 .env files, and both are required.

  • one in root folder to define server needs
  • one in backend to setup the API
NODE_ENV            = development
APP_PORT            = 3000
APP_ISSUER          = gitbub.com/mrbontor
....

Database config

This mini microservice is developed using Docker and Docker Compose, Hint:

- If you are going to use your existing MongoDb and Redis, please change the configuration in [.env](../../app-job-list/.env-example) and [backend](./.env-example) (i expects the env files has been renamed)
- If you are using MongoAtlas or other Mongo Cloud, please set variable `MONGO_LOCAL` to be true in [backend](./.env-example)

Deployment && Testing

Deployment BE

Running service using Docker and Docker-Compose

# start
$ docker-compose up

# stop
$ docker-compose down

# remove
$ docker-compose down -v

#login to the container by container name base on docker-compose.yml
$ docker exec -it [`container-name`] sh

#logging the container
$ docker logs -f `container-name`

Running for existing MongoDB and Redis

# enter to the backend
$ cd apps/backend

# install dependencies
$ npm install

# run app
$ npm start

# or
$ node index.js

Deployment FE

on progress..

BE Endpoints


AUTH

User(s) must be authenticated before accessing any API.

The AUTH API will return accessToken, refreshToken and DID
API has provided Cookies for clients with expiration time.
To change the lifetime, look in the .env file. Expiration time is used to handle JWT Token and Cookie expiration

Notes:

  • accessToken will be returned in response body
  • refreshToken will be returned as Cookie with name RTOKEN
  • deviceId is the device identifier and will be returned as a Cookie with name DID

1. LOGIN

User login using method POST with paramatersusername and password.

Endpoint:

Method: POST
Type: RAW
URL: {{local}}/v1/auth/login

Body:

{
    "emailAddress": "superadmin@gmail.com",
    "password": "Superadmin123!"
}

More example Requests/Responses:

I. Example Request: Success

Body:

{
    "emailAddress": "superadmin@gmail.com",
    "password": "Superadmin123!"
}

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzZXJOYW1lIjoic3VwZXJhZG1pbiIsImVtYWlsQWRkcmVzcyI6InN1cGVyYWRtaW5AZ21haWwuY29tIn0sImlhdCI6MTY3NjMxNzg0NywiZXhwIjoxNjc2MzUzODUwLCJhdWQiOiJnaXRidWIuY29tL21yYm9udG9yIiwiaXNzIjoiZ2l0YnViLmNvbS9tcmJvbnRvciJ9._YH23frdqyVqenHCU0y5uOs-1y2hMKeWfa4RxRsAVTU"
    }
}

Status Code: 200


II. Example Request: Un Authorized / wrong credential

Body:

{
    "emailAddress": "superadmin@gmail.com",
    "password": "Superadmin123!!"
}

II. Example Response: Un Authorized / wrong credential

{
    "status": false,
    "message": "Un Authorized!"
}

Status Code: 401


2. SIGNUP

Register user use JSON payload to create a user

Endpoint:

Method: POST
Type: RAW
URL: {{local}}/v1/auth/register

Body:

{
    "firstName": "user",
    "lastName": "baru",
    "gender": "Man",
    "userName": "user1",
    "emailAddress": "user1@gmail.com",
    "password": "User123!"
}

More example Requests/Responses:

I. Example Request: Success

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": "63ea87cef26e1fd489b65dfe"
}

Status Code: 200


II. Example Request: Err Username exist

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

II. Example Response: Err Username exist

{
    "status": false,
    "message": "The userName has been registered!"
}

Status Code: 422


III. Example Request: Err Email exist

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin1",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

III. Example Response: Err Email exist

{
    "status": false,
    "message": "The emailAddress has been registered!"
}

Status Code: 422


IV. Example Request: Err Valiation missing field

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

IV. Example Response: Err Valiation missing field

{
    "status": false,
    "message": "Validation Error!",
    "errors": [
        {
            "param": "gender",
            "key": "required",
            "message": "Gender is required!"
        }
    ]
}

Status Code: 400


V. Example Request: Err Validation additional field

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!",
    "xxx": "xxx"
}

V. Example Response: Err Validation additional field

{
    "status": false,
    "message": "Validation Error!",
    "errors": [
        {
            "param": "xxx",
            "key": "additionalProperties",
            "message": "must NOT have additional properties"
        }
    ]
}

Status Code: 400


VI. Example Request: Err UnAuthorized

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

VI. Example Response: Err UnAuthorized

{
    "status": false,
    "message": "Token invalid"
}

Status Code: 401


3. REFRESH

Fetch new Token as a refresh token

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/auth/refresh-token

More example Requests/Responses:

I. Example Request: Success

Body: None

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzZXJOYW1lIjoic3VwZXJhZG1pbiIsImVtYWlsQWRkcmVzcyI6InN1cGVyYWRtaW5AZ21haWwuY29tIn0sImlhdCI6MTY3NjMxOTA1MiwiZXhwIjoxNjc2MzU1MDU1LCJhdWQiOiJnaXRidWIuY29tL21yYm9udG9yIiwiaXNzIjoiZ2l0YnViLmNvbS9tcmJvbnRvciJ9.xLYDBHw7wpYYSWYy5Nnyhp6Wxk0LD9YnNmfdnnlmY0A"
    }
}

Status Code: 200


II. Example Request: err UnAuthorized

Body: None

II. Example Response: err UnAuthorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


4. LOGOUT

User Logout and remove token, cookies etc

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/auth/logout

More example Requests/Responses:

I. Example Request: Sucesss

Query:

Key Value Description
allDevices true true or false

Body: None

Status Code: 204


II. Example Request: Un Authorized

Query:

Key Value Description
allDevices true true or false

Body: None

II. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


USER

Users directory contains all the user related APIs. For authentication these apis requrie AuthBearerToken

1. CREATE

Create user use JSON payload to create a user

Endpoint:

Method: POST
Type: RAW
URL: {{local}}/v1/users

Body:

{
    "firstName": "user",
    "lastName": "baru",
    "gender": "Man",
    "userName": "user1",
    "emailAddress": "user1@gmail.com",
    "password": "User123!"
}

More example Requests/Responses:

I. Example Request: Success

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": "63ea87cef26e1fd489b65dfe"
}

Status Code: 200


II. Example Request: Err Username exist

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

II. Example Response: Err Username exist

{
    "status": false,
    "message": "The userName has been registered!"
}

Status Code: 422


III. Example Request: Err Email exist

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin1",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

III. Example Response: Err Email exist

{
    "status": false,
    "message": "The emailAddress has been registered!"
}

Status Code: 422


IV. Example Request: Err Valiation missing field

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

IV. Example Response: Err Valiation missing field

{
    "status": false,
    "message": "Validation Error!",
    "errors": [
        {
            "param": "gender",
            "key": "required",
            "message": "Gender is required!"
        }
    ]
}

Status Code: 400


V. Example Request: Err Validation additional field

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!",
    "xxx": "xxx"
}

V. Example Response: Err Validation additional field

{
    "status": false,
    "message": "Validation Error!",
    "errors": [
        {
            "param": "xxx",
            "key": "additionalProperties",
            "message": "must NOT have additional properties"
        }
    ]
}

Status Code: 400


VI. Example Request: Err UnAuthorized

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

VI. Example Response: Err UnAuthorized

{
    "status": false,
    "message": "Token invalid"
}

Status Code: 401


2. UPDATE CREDENTIAL

Patch password user use JSON payload to update user password.

fields:

  • password, required
  • newPassword, required

Noted: Changing password will remove Token Bearer

Endpoint:

Method: PATCH
Type: RAW
URL: {{local}}/v1/users/password/superadmin

Body:

{
    "password": "SuperAdmin123!",
    "newPassword": "Superadmin123!"
}

More example Requests/Responses:

I. Example Request: Success

Body:

{
    "password": "SuperAdmin123!",
    "newPassword": "Superadmin123!"
}

Status Code: 204


II. Example Request: Err Incorrect pwd

Body:

{
    "password": "Superadmin123!!",
    "newPassword": "Superadmin123!"
}

II. Example Response: Err Incorrect pwd

{
    "status": false,
    "message": "Incorect Password"
}

Status Code: 400


III. Example Request: Un Authorized, password has changed

Body:

{
    "password": "!Haruslolos123",
    "newPassword": "Haruslolos123!"
}

III. Example Response: Un Authorized, password has changed

Unauthorized

Status Code: 401


3. GET ALL

Fetch all list users

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/users

More example Requests/Responses:

I. Example Request: Success with filter

Query:

Key Value Description
userName user

Body: None

I. Example Response: Success with filter

{
    "status": true,
    "message": "Success",
    "data": [
        {
            "firstName": "user",
            "lastName": "baru",
            "gender": "Man",
            "userName": "user",
            "emailAddress": "user@gmail.com",
            "infoLogin": {
                "hash": "ca2658da7607e51c90f34c40673e90703f3fd166325bb93e7af42996602a908ad9001549d89e19680cd57ccabc63f5ff175e79602ca70686b230750df11a132a",
                "salt": "9QivnIANDqJZlrX6tknuotPULAiX+sS4eiOUsO+ODAU=",
                "iterations": 13786
            },
            "createdAt": "2023-02-13T19:29:30.069Z",
            "updatedAt": "2023-02-13T19:29:30.069Z",
            "_id": "63ea8f9a33fc7d066c2a1c60"
        }
    ]
}

Status Code: 200


II. Example Request: Success without filter

Body: None

II. Example Response: Success without filter

{
    "status": true,
    "message": "Success",
    "data": [
        {
            "firstName": "user",
            "lastName": "baru",
            "gender": "Man",
            "userName": "user",
            "emailAddress": "user@gmail.com",
            "infoLogin": {
                "hash": "ca2658da7607e51c90f34c40673e90703f3fd166325bb93e7af42996602a908ad9001549d89e19680cd57ccabc63f5ff175e79602ca70686b230750df11a132a",
                "salt": "9QivnIANDqJZlrX6tknuotPULAiX+sS4eiOUsO+ODAU=",
                "iterations": 13786
            },
            "createdAt": "2023-02-13T19:29:30.069Z",
            "updatedAt": "2023-02-13T19:29:30.069Z",
            "_id": "63ea8f9a33fc7d066c2a1c60"
        },
        {
            "_id": "63ea8edeb1c4594d460bf06a",
            "firstName": "Super",
            "lastName": "Admins",
            "gender": "Man",
            "userName": "superadmin",
            "emailAddress": "superadmin@gmail.com",
            "infoLogin": {
                "hash": "0c3d37e8400d491340aaebcbd61d03dbcc633ab5bc2a68db5c9a89405a61d5e1ea27305be13d1e816feb5909aa05d8950e22e7fccfdced84f484d6183d7c9153",
                "salt": "0HsD05G4VWBiHbddEo9MaDqvQSekNCIaUdaDmjtc/R0=",
                "iterations": 25475
            },
            "createdAt": "2023-02-13T19:28:27.894Z",
            "updatedAt": "2023-02-13T19:28:27.894Z"
        }
    ]
}

Status Code: 200


III. Example Request: Un Authorized

Headers:

Key Value Description
Content-Type application/json

Body: None

III. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


4. GET TABLE

Fetch User using pagination

allowed filter/search by multiple fields

  • firstName
  • username
  • email

can be sorted by those fields as well

sortBy = status

sortType = desc or asc

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/users/table

More example Requests/Responses:

I. Example Request: Success

Body: None

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "sort": {
            "updatedAt": "ASC"
        },
        "page": 1,
        "size": 10,
        "totalRecord": 2,
        "totalPage": 1,
        "data": [
            {
                "_id": "63df5fb20a6799aeaf22f724",
                "userName": "superadmin",
                "accountNumber": 12345671,
                "emailAddress": "superadmin@gmail.com",
                "identityNumber": 1234567898765431,
                "createdAt": "2023-02-05T07:50:10.417Z",
                "updatedAt": "2023-02-05T07:50:10.417Z"
            },
            {
                "_id": "63df60c87116dd7ec619891b",
                "userName": "user",
                "accountNumber": 12345672,
                "emailAddress": "user@gmail.com",
                "identityNumber": 1234567898765432,
                "createdAt": "2023-02-05T07:54:48.310Z",
                "updatedAt": "2023-02-05T07:54:48.310Z"
            }
        ]
    }
}

Status Code: 200


II. Example Request: Success with filter user

Query:

Key Value Description
sortBy status userName, emailAddress, identityNumber, accountNumber
sortType desc asc, desc and/or 0, 1
search superadmin string

Body: None

II. Example Response: Success with filter user

{
    "status": true,
    "message": "Success",
    "data": {
        "sort": {
            "status": "DESC"
        },
        "page": 1,
        "size": 10,
        "totalRecord": 2,
        "totalPage": 1,
        "data": [
            {
                "_id": "63df5fb20a6799aeaf22f724",
                "userName": "superadmin",
                "accountNumber": 12345671,
                "emailAddress": "superadmin@gmail.com",
                "identityNumber": 1234567898765431,
                "createdAt": "2023-02-05T07:50:10.417Z",
                "updatedAt": "2023-02-05T07:50:10.417Z"
            }
        ]
    }
}

Status Code: 200


III. Example Request: Success with sort

Query:

Key Value Description
sortBy status firstName, username, email, status
sortType desc asc, desc and/or 0, 1

Body: None

III. Example Response: Success with sort

{
    "status": true,
    "message": "Success",
    "data": {
        "sort": {
            "status": "DESC"
        },
        "page": 1,
        "size": 10,
        "totalRecord": 2,
        "totalPage": 1,
        "data": [
            {
                "_id": "63df5fb20a6799aeaf22f724",
                "userName": "superadmin",
                "accountNumber": 12345671,
                "emailAddress": "superadmin@gmail.com",
                "identityNumber": 1234567898765431,
                "createdAt": "2023-02-05T07:50:10.417Z",
                "updatedAt": "2023-02-05T07:50:10.417Z"
            },
            {
                "_id": "63df60c87116dd7ec619891b",
                "userName": "user",
                "accountNumber": 12345672,
                "emailAddress": "user@gmail.com",
                "identityNumber": 1234567898765432,
                "createdAt": "2023-02-05T07:54:48.310Z",
                "updatedAt": "2023-02-05T07:54:48.310Z"
            }
        ]
    }
}

Status Code: 200


IV. Example Request: Un Authorized

Headers:

Key Value Description
Content-Type application/json

Body: None

IV. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


5. GET ONE

Fetch a single user using identityNumber

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/users/users

More example Requests/Responses:

I. Example Request: Success

Body: None

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "firstName": "user",
        "lastName": "baru",
        "gender": "Man",
        "userName": "user",
        "emailAddress": "user@gmail.com",
        "infoLogin": {
            "hash": "ca2658da7607e51c90f34c40673e90703f3fd166325bb93e7af42996602a908ad9001549d89e19680cd57ccabc63f5ff175e79602ca70686b230750df11a132a",
            "salt": "9QivnIANDqJZlrX6tknuotPULAiX+sS4eiOUsO+ODAU=",
            "iterations": 13786
        },
        "createdAt": "2023-02-13T19:29:30.069Z",
        "updatedAt": "2023-02-13T19:29:30.069Z",
        "_id": "63ea8f9a33fc7d066c2a1c60"
    }
}

Status Code: 200


II. Example Request: Err not found

Body: None

II. Example Response: Err not found

{
    "status": false,
    "message": "User not found!"
}

Status Code: 404


III. Example Request: Un Authorized

Headers:

Key Value Description
Content-Type application/json

Body: None

III. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


6. PUT

Update user use JSON payload to update a user

Endpoint:

Method: PUT
Type: RAW
URL: {{local}}/v1/users/superadmin

Body:

{
    "firstName": "Super",
    "lastName": "Admins",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "user@gmail.com"
}

More example Requests/Responses:

I. Example Request: Success

Body:

{
    "firstName": "Super",
    "lastName": "Admins",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com"
}

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "_id": "63ea8edeb1c4594d460bf06a",
        "firstName": "Super",
        "lastName": "Admins",
        "gender": "Man",
        "userName": "superadmin",
        "emailAddress": "superadmin@gmail.com",
        "infoLogin": {
            "hash": "0c3d37e8400d491340aaebcbd61d03dbcc633ab5bc2a68db5c9a89405a61d5e1ea27305be13d1e816feb5909aa05d8950e22e7fccfdced84f484d6183d7c9153",
            "salt": "0HsD05G4VWBiHbddEo9MaDqvQSekNCIaUdaDmjtc/R0=",
            "iterations": 25475
        },
        "createdAt": "2023-02-13T19:28:27.894Z",
        "updatedAt": "2023-02-13T19:28:27.894Z"
    }
}

Status Code: 200


II. Example Request: Err Validation additional field(s)

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

II. Example Response: Err Validation additional field(s)

{
    "status": false,
    "message": "Validation Error!",
    "errors": [
        {
            "param": "password",
            "key": "additionalProperties",
            "message": "must NOT have additional properties"
        }
    ]
}

Status Code: 400


III. Example Request: Err Not found

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com"
}

III. Example Response: Err Not found

{
    "status": false,
    "message": "User not found!"
}

Status Code: 404


IV. Example Request: Err email exist

Body:

{
    "firstName": "Super",
    "lastName": "Admins",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "user@gmail.com"
}

IV. Example Response: Err email exist

{
    "status": false,
    "message": "The emailAddress has been registered!"
}

Status Code: 422


V. Example Request: Un Authorized

Headers:

Key Value Description
Content-Type application/json

Body:

{
    "firstName": "Super",
    "lastName": "Admin",
    "gender": "Man",
    "userName": "superadmin",
    "emailAddress": "superadmin@gmail.com",
    "password": "SuperAdmin123!"
}

V. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


7. DELETE

Delete a single user using idUser

Only Admin can perform this API

Endpoint:

Method: DELETE
Type: 
URL: {{local}}/v1/users/user1

More example Requests/Responses:

I. Example Request: Success

Body: None

Status Code: 204


II. Example Request: Un Authorized

Body: None

II. Example Response: Un Authorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


JOB

1. JOBS Pagination

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/jobs

More example Requests/Responses:

I. Example Request: Success withoout filter

Body: None

I. Example Response: Success withoout filter

{
    "status": true,
    "message": "Success",
    "data": {
        "data": [
            
            {
                "id": "32bf67e5-4971-47ce-985c-44b6b3860cdb",
                "type": "Full Time",
                "url": "https://jobs.github.com/positions/32bf67e5-4971-47ce-985c-44b6b3860cdb",
                "created_at": "Wed May 19 00:49:17 UTC 2021",
                "company": "SweetRush",
                "company_url": "https://www.sweetrush.com/",
                "location": "Remote",
                "title": "Senior Creative Front End Web Developer",
                "description": "description",
                "how_to_apply": "<p>If this describes your interests and experience, please submit your current resume and salary requirements through the following link:\n<a href=\"https://www.sweetrush.com/join-us/\">https://www.sweetrush.com/join-us/</a></p>\n",
                "company_logo": "https://jobs.github.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaUtqIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--82886ff47e94ff4c0255b95773a9667644768b2b/SR%20Logo.png"
            },
        ],
        "page": 1,
        "size": 10
    }
}

Status Code: 200


II. Example Request: Succces with filter

Query:

Key Value Description
location Schwerin

Body: None

II. Example Response: Succces with filter

{
    "status": true,
    "message": "Success",
    "data": {
        "data": [
            {
                "id": "7638eee4-4e75-4c06-a920-ea7619a311b5",
                "type": "Full Time",
                "url": "https://jobs.github.com/positions/7638eee4-4e75-4c06-a920-ea7619a311b5",
                "created_at": "Tue May 18 17:12:52 UTC 2021",
                "company": "MANDARIN MEDIEN Gesellschaft für digitale Lösungen mbH",
                "company_url": "https://www.mandarin-medien.de/",
                "location": "Schwerin",
                "title": "Systemadministrator:in",
                "description": "description ex",
                "how_to_apply": "<p><a href=\"https://t.gohiring.com/h/83f7df34249addb0bebc8dc680310d1ded43220a748ee285e27989a457dd10ea\">Application form</a></p>\n",
                "company_logo": "https://jobs.github.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaCtqIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8d0339b9e43b0dca160b9db73b230b6067e39b05/MANDARIN%20MEDIEN%20Gesellschaft%20fu%CC%88r%20digitale%20Lo%CC%88sungen%20mbH.jpeg"
            },
            ...
        ],
        "page": 1,
        "size": 3
    }
}

Status Code: 200


III. Example Request: No Available data

Query:

Key Value Description
page 3

Body: None

III. Example Response: No Available data

{
    "status": false,
    "message": "No data available"
}

Status Code: 404


IV. Example Request: JOBS Pagination

Body: None

IV. Example Response: JOBS Pagination

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


2. JOB DETAIL

Endpoint:

Method: GET
Type: 
URL: {{local}}/v1/jobs/0cbbfe2b-5dcf-45f9-94bf-b74882b593ff

More example Requests/Responses:

I. Example Request: Success

Body: None

I. Example Response: Success

{
    "status": true,
    "message": "Success",
    "data": {
        "id": "0cbbfe2b-5dcf-45f9-94bf-b74882b593ff",
        "type": "Full Time",
        "url": "https://jobs.github.com/positions/0cbbfe2b-5dcf-45f9-94bf-b74882b593ff",
        "created_at": "Fri May 14 08:12:18 UTC 2021",
        "company": "Bertrandt Technikum GmbH Ehningen",
        "company_url": "http:",
        "location": "Ehningen",
        "title": "Entwicklungsingenieur (m/w/d) AUTOSAR",
        "description": "exem descript",
        "how_to_apply": "<p><a href=\"https://bertrandtgroup.jobbase.io/apply/krjxavmlljhlwvli7c0r4burof6gt1j\">https://bertrandtgroup.jobbase.io/apply/krjxavmlljhlwvli7c0r4burof6gt1j</a></p>\n",
        "company_logo": null
    }
}

Status Code: 200


II. Example Request: Err UnAuthorized

Body: None

II. Example Response: Err UnAuthorized

{
    "status": false,
    "message": "Token Invalid"
}

Status Code: 401


Ungrouped

1. HEALTH CHECK

To ensure this service online, the client can request to this API first than continue main API

Endpoint:

Method: GET
Type: 
URL: localhost:3002

More example Requests/Responses:

I. Example Request: HEALTH CHECK

Body: None

I. Example Response: HEALTH CHECK

{
    "uptime": 119.348257728,
    "message": "OK",
    "timestamp": 1676317218443
}

Status Code: 200



Back to top

About


Languages

Language:JavaScript 98.3%Language:Shell 0.9%Language:Dockerfile 0.8%