Skip to content

BW-Potluck-Planner-3/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend For Potluck-Planner-3

REGISTER / LOGIN

[POST] /api/auth/register

  • User register
    • username required (must be unique)
    • password required

Send

{
  "username": "user",
  "password": "password"
}

Response

{
  "message": "Successfully registered user"
}

[POST] /api/auth/login

  • User login
    • username required
    • password required

Send

{
  "username": "user",
  "password": "password"
}

Response

{
  "message": "Welcome back user!",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikpva",
  "user_id": 1
}

USERS (RESTRICTED)

[GET] /api/users

  • Return array of users
    • requires token in header

Response

[
  {
    "user_id": 1,
    "username": "user"
  },
  {
    "user_id": 2,
    "username": "user2"
  }
]

[GET] /api/users/:user_id

  • Return user with specified user_id
    • requires token in header

Response

{
  "user_id": 1,
  "username": "user"
}

[GET] /api/users/:user_id/potlucks

  • Returns array of potlucks by user_id

Response

[
  {
    "potluck_id": 1,
    "potluck_name": "Frodo's Farewell Party",
    "date": "2/3/2022"
    "time": "1:30 PM UTC",
    "location": "The Shire",
    "user_id": 2
  }
]

[POST] /api/users

  • Returns a user's user_id inside of an object
    • Requires an existing user's username

Send

{
  "username": "user",
}

Response

{
  "user_id": 1,
}

[POST] /api/users/:user_id/potlucks

  • Creates new potluck object by individual users
    • potluck_name required
    • date required
    • time required
    • location required

Send

{
 "potluck_name": "potluck 1",
 "date": "2021/12/21",
 "time": "12:00",
 "location": "nowhere"
}

Response

{
 "potluck_name": "potluck 1",
 "date": "2021/12/21",
 "time": "12:00",
 "location": "nowhere",
 "user_id": 1,
 "guests": [
  {
    "user_id": 1,
    "username": "user",
    "attending": true,
  }
 ]
}

POTLUCKS (RESTRICTED)

[GET] /api/potlucks

  • Returns array of potlucks in database

Response

[
  {
    "potluck_id": 1,
    "potluck_name": "potluck 1",
    "date": "2021/12/21",,
    "time": "11:00",
    "location": "america",
    "user_id": 1
  }
]

[GET] /api/potlucks/:potluck_id

  • Returns array of potlucks by potluck ID
[
  {
    "potluck_id": 1,
    "potluck_name": "potluck 1",
    "date": "2021/12/21",,
    "time": "11:00",
    "location": "america",
    "user_id": 1
    "guests": [
      {
        "user_id": 1,
        "username": "user",
        "attending": true
      }
    ]
    "foods": [
      {
        "food_name": "pizza",
        "user_id": 1,
        "username": "user"
      }
    ]
  }
]

[GET] /api/potlucks/:potluck_id/guests

  • Returns array of guests by potluck ID
[
 {
  "user_id": 1,
  "username": "user1",
  "attending": true
 },
 {
  "user_id": 3,
  "username": "user3",
  "attending": false
 }
]

[GET] /api/potlucks/:potluck_id/foods

  • Returns an array of food by potluck ID
[
 {
  "food_name": "pizza",
  "user_id": 1,
  "username": "user"
 }
]

[POST] /api/potlucks/:potluck_id/guests

  • Add an array of guests by potluck ID
    • user_id required
    • attending status (boolean) required

Send

[
  {
   "user_id": 1,
   "attending": true
  },
  {
   "user_id": 2,
   "attending": false
  }
]

Response

{
 "user_id": 1,
 "username": "user",
 "attending": true
}

[POST] /api/potlucks/:potluck_id/foods

  • Adds a food to a potluck
    • food_name required (must be unique)

Send

{
  "food_name": "pizza",
}

Response

[
 {
  "food_name": "pizza",
  "user_id": 1,
  "username": "user"
 }
]

[PUT] /api/potlucks/:potluck_id

  • Update Potluck by potluck_id
    • potluck_name required
    • date required
    • time required
    • location required

Send

{
  "potluck_name": "updated potluck",
  "date": "2021/12/21",
  "time": "12:00",
  "location": "nowhere"
}

Response

{
  "potluck_id": 1,
  "potluck_name": "updated potluck",
  "time": "12:00",
  "location": "nowhere",
  "user_id": 1
}

[PUT] /api/potlucks/:potluck_id/guests/:user_id

  • Update Guest attendance
    • attending status required (boolean)

Send

{
  "attending": "false",
}

Response

{
  "user_id": 1,
  "username": "user",
  "attending": "false"
}

[DELETE] /api/potlucks/:potluck_id

  • Delete Potluck by ID

[DELETE] /api/potlucks/:potluck_id/guests

  • Delete Guest By Potluck ID
    • user_id required

Send

{
  "user_id": 1
}
  • Responds with all guests from specified potluck ID

[DELETE] /api/potlucks/:potluck_id/foods

  • Delete food_name from Potluck ID
    • food_name required

Send

{
  "food_name": "food item"
}
  • Responds back with all food item from potluck ID

About

Unit 4 Potluck Planner 3 backend repository for BloomTech build week.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published