endorsement/README.md
2018-11-28 15:02:38 +01:00

2 KiB

Endorsement

Zoals besproken op de eerste bestuursvergadering.

! Beware: ux is nog verschrikkelijk lelijk, functioneel werkt het wel

Endpoints

Geen authenticatie

  • /users: Overzicht van alle users (default)
  • /users/<username>: Achievements van de user username
  • /login en /logout: Laat de user aan- en afmelden
  • /achievement/<id>: Een specifieke achievement

Enkel bereikbaar na aanmelden

  • /users/<username>/addachievement?name=XYZ: Maakt een nieuw achievement aan bij username met naam XYZ en laat de ingelogde persoon endorsen
  • /achievement/<id>/endorse: Voegt de ingelogde persoon toe aan endorsed_by van achievement id
  • /achievement/<id>/unendorse: Verwijdert de ingelogde persoon van endorsed_by van achievement id

DB model

User

name type nullable uniek beschrijving
id String(80) False True de username

Achievement

name type nullable uniek beschrijving
id Integer False True unieke id
name String(128) False False beschrijving van de achievement
achieved_by FK -> user.id False False wie de achievement gehaald heeft

Endorses

Relatie tussen User en Achievement

API

/api/users

Returnt een lijst van strings (usernames)

/api/achievements

Return een lijst van Achievement-objecten

Achievement-object:

{
    id: number -> Unieke id
    name: String -> Naam van het achievement
    endorsed_by: [String] -> Lijst van User-ids die deze achievement endorsen
    achieved_by: String -> User-id van de persoon die dit achievement gehaald heeft
}

/api/all

Returnt een lijst van User-objecten

User-object

{
    id: String -> Username
    achievement: [Achievement] -> Lijst met achievements van deze persoon
}