Job Board API API Reference

API documentation for Job Board Project.

API Endpoint
https://https://go-job-board-api.herokuapp.com
Contact: alphaelena@gmail.com
Schemes: https
Version: 1.0

Authentication

bearer_token

type
jwt
name
Authorization
in
header
scopes
write:JobPosts

Modify JobPosts in your account

read:JobPosts

Read your JobPosts

Auth

Sign up

POST /signup

User creation endpoint

User Credentials used for creating an user

Request Example
{
  "email": "string",
  "password": "string"
}
200 OK

successful operation

400 Bad Request

Invalid email or password

Log in

POST /login

Authentication endpoint used to exchange valid user credentials for access token

User Credentials

Request Example
{
  "email": "string",
  "password": "string"
}
200 OK

successful operation

type
string
400 Bad Request

Invalid email or password

Response Example (200 OK)
"string"

User

Update Company Profile

PUT /user/{id}/company-profile

Updates a User's Company Profile general information: website,foundedYear,companyLogoUrl

Company Profile information that is going to be updated

userId: string
in path

ID of User that will get Company Profile updated

Request Content-Types: application/json
Request Example
{
  "ID": "",
  "website": "",
  "foundedYear": "",
  "description": "",
  "companyBenefits": [
    {
      "ID": "",
      "benefitName": ""
    }
  ],
  "companyLogoUrl": "",
  "companySkills": [
    {
      "ID": "",
      "skillName": ""
    }
  ]
}
200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Add skill to Company Profile

PUT /user/{id}/company-profile/add-skill/{skillId}

Adds a Skill to a User's Company Profile

userId: string
in path

ID of User that will get its Company Profile updated with a new Skill

skillId: string
in path

ID of skill that will be added to a User's Company Profile

200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Remove Skill from Company Profile

PUT /user/{id}/company-profile/remove-skill/{skillId}

Remove a Skill from a User's Company Profile

userId: string
in path

ID of User that will get its Company Profile updated by removing one of its skills

skillId: string
in path

ID of skill that will be removed from a User's Company Profile

200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Add Benefit to Company Profile

PUT /user/{id}/company-profile/add-benefit

Adds a Company Benefit to a User's Company Profile

CompanyBenefit object that will be added to a User's Company Profile

userId: string
in path

ID of User that will get its Company Profile updated by adding a benefit to its Company Profile

Request Content-Types: application/json
Request Example
{
  "ID": "",
  "benefitName": ""
}
200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Remove Benefit from Company Profile

PUT /user/{id}/company-profile/remove-benefit/{benefitId}

Remove a Company Benefit from a User's Company Profile

userId: string
in path

ID of User that will get its Company Profile updated by removing one of its benefits

benefitId: string
in path

ID of Company Benefit that will be removed from a User's Company Profile

200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Update Company Benefit

PUT /user/{id}/company-profile/update-benefit/{benefitId}

Updates Company Benefit from a User's Company Profile

CompanyBenefit object that will be updated

userId: string
in path

ID of User that will get its Company Profile updated by updating one of it's benefits

Request Content-Types: application/json
Request Example
{
  "ID": "",
  "benefitName": ""
}
200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

JobPost

Get JobPosts

GET /jobs

Return a list of Job posts

200 OK

Success response

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "title": "",
    "description": "",
    "applyAt": "",
    "UserID": "",
    "location": {
      "locationName": ""
    },
    "category": {
      "ID": "",
      "categoryName": ""
    },
    "skills": [
      {
        "ID": "",
        "skillName": ""
      }
    ]
  }
]

Create JobPost

POST /jobs

Adds a new JobPost to the store

JobPost object that needs to be added to the store

Request Content-Types: application/json
Request Example
{
  "title": "",
  "description": "",
  "applyAt": "",
  "UserID": "",
  "location": {
    "locationName": ""
  },
  "category": {
    "ID": "",
    "categoryName": ""
  },
  "skills": [
    {
      "ID": "",
      "skillName": ""
    }
  ]
}
400 Bad Request

Invalid input

Response Content-Types: application/json

Get JobPost by ID

GET /jobs/{id}

Return a single job Post

jobId: string
in path

ID of JobPost to return

200 OK

successful operation

400 Bad Request

Invalid ID supplied

404 Not Found

JobPost not found

Response Content-Types: application/json
Response Example (200 OK)
{
  "title": "",
  "description": "",
  "applyAt": "",
  "UserID": "",
  "location": {
    "locationName": ""
  },
  "category": {
    "ID": "",
    "categoryName": ""
  },
  "skills": [
    {
      "ID": "",
      "skillName": ""
    }
  ]
}

Add Skill to JobPost

PUT /jobs/{id}/add-skill/{skillId}

Adds a Skill to a JobPost

jobId: string
in path

ID of JobPost that will get skill added

skillId: string
in path

ID of skill that will be added to JobPost

200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Remove Skill from JobPost

PUT /jobs/{id}/remove-skill/{skillId}

Remove a Skill from a JobPost

jobId: string
in path

ID of JobPost that will get skill removed

skillId: string
in path

ID of skill that will be removed from JobPost

200 OK

successful operation

400 Bad Request

Invalid input

Response Content-Types: application/json

Location

Get Locations

GET /locations

Return a list of Locations

200 OK

Success response

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "locationName": ""
  }
]

Category

Get Categories

GET /categories

Return a list of Categories

200 OK

Success response

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": "",
    "categoryName": ""
  }
]

Skill

Get Skills

GET /skills

Return a list of Skills

200 OK

Success response

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": "",
    "skillName": ""
  }
]

Schema Definitions

JobPost: object

title: string
description: string
applyAt: string
UserID: string
location: Location
category: Category
skills: Skill
Skill
Example
{
  "title": "",
  "description": "",
  "applyAt": "",
  "UserID": "",
  "location": {
    "locationName": ""
  },
  "category": {
    "ID": "",
    "categoryName": ""
  },
  "skills": [
    {
      "ID": "",
      "skillName": ""
    }
  ]
}

User: object

ID: string
companyProfile: CompanyProfile
email: string
JobPosts: JobPost
JobPost
Example
{
  "ID": "",
  "companyProfile": {
    "ID": "",
    "website": "",
    "foundedYear": "",
    "description": "",
    "companyBenefits": [
      {
        "ID": "",
        "benefitName": ""
      }
    ],
    "companyLogoUrl": "",
    "companySkills": [
      {
        "ID": "",
        "skillName": ""
      }
    ]
  },
  "email": "string",
  "JobPosts": [
    {
      "title": "",
      "description": "",
      "applyAt": "",
      "UserID": "",
      "location": {
        "locationName": ""
      },
      "category": {
        "ID": "",
        "categoryName": ""
      },
      "skills": [
        {
          "ID": "",
          "skillName": ""
        }
      ]
    }
  ]
}

Skill: object

ID: string
skillName: string
Example
{
  "ID": "",
  "skillName": ""
}

Category: object

ID: string
categoryName: string
Example
{
  "ID": "",
  "categoryName": ""
}

Location: object

locationName: string
Example
{
  "locationName": ""
}

CompanyBenefit: object

ID: string
benefitName: string
Example
{
  "ID": "",
  "benefitName": ""
}

CompanyProfile: object

ID: string
website: string
foundedYear: integer
description: string
companyBenefits: CompanyBenefit
CompanyBenefit
companyLogoUrl: string
companySkills: Skill
Skill
Example
{
  "ID": "",
  "website": "",
  "foundedYear": "",
  "description": "",
  "companyBenefits": [
    {
      "ID": "",
      "benefitName": ""
    }
  ],
  "companyLogoUrl": "",
  "companySkills": [
    {
      "ID": "",
      "skillName": ""
    }
  ]
}

Credentials: object

email: string
password: string
Example
{
  "email": "string",
  "password": "string"
}