Skip to content

API Design

Viniel Kumar edited this page Jun 26, 2020 · 10 revisions

Jobs

Resource GET POST PUT DELETE
/jobs get all jobs create new job N/A N/A
/jobs/{jobId} get {jobId} N/A update {jobId} delete job {jobId}
/jobs/{jobId}/subjobs get all subjobs for {jobId} create subjob for {jobId} N/A N/A
/jobs/{jobId}/subjobs/{subjobId} get {subjobId} for {jobId} N/A update {subjobId} for {jobId} delete subjob {subjobId}
/jobs/{jobId}/users get all users assigned to {jobId} assign user to {jobId} N/A remove user from {jobId}

Users

Resource GET POST PUT DELETE
/users get all users create new user N/A N/A
/users/{uid} get {uid} N/A update {uid} delete user {uid}
/users/{uid}/stars get stars for {uid} N/A update stars for {uid} N/A
/users/{uid}/jobs get all jobs for {uid} assign job to {uid} N/A remove job from {uid}
/users/{uid}/companies get all companies for {uid} assign company to {uid} N/A remove company from {uid}

Companies

Resource GET POST PUT DELETE
/companies get all companies create new company N/A N/A
/companies/{companyId} get {companyId} N/A update {companyId} delete {companyId}
/companies/{companyId}/users get all users for {companyId} N/A N/A N/A
/companies/{companyId}/users/{uid}/jobs get all jobs assigned to {uid} for {companyId} N/A N/A N/A
/companies/{companyId}/jobs get all jobs for {companyId} N/A N/A N/A

API Security

Users + Employers + Admin

/companies/{companyId} (GET)
/users/{uid} (GET)
/jobs/{jobId}/subjobs (GET)
/users/{uid}/companies (GET)
/users/{uid}/stars (GET, PUT)
/users/{uid}/jobs (GET)
/email (POST)

Employers + Admin

/companies/{companyId} (PUT)
/companies/{companyId}/users (GET)
/companies/{companyId}/jobs (GET)
/companies/{companyId}/users/{uid}/jobs (GET)
/users/{uid}/jobs (DELETE, POST)
/jobs/{jobId} (DELETE)
/jobs/{jobId}/subjobs/{subjobId} (DELETE, PUT)
/jobs/{jobId}/subjobs (POST)
/jobs (POST)

Admin

/companies (GET, POST)
/companies/{companyId} (DELETE)
/users (GET, POST)
/users/{uid} (DELETE, PUT)
/users/{uid}/companies (DELETE, POST)

Endpoints to sort:

Companies

/companies/{companyId}/users/{uid} (GET)

Jobs

/jobs (GET)
/jobs/{jobId} (GET, PUT)
/jobs/{jobId}/subjobs/{subjobId} (GET)
/jobs/{jobId}/users (DELETE, GET, PUT) [Might not need this anymore]

Developer Documentation

Mockup

Database

API

User Management

React Native

Research

Clone this wiki locally