backend-test #10
2
.gitignore
vendored
2
.gitignore
vendored
@ -2,3 +2,5 @@
|
||||
.idea
|
||||
keycloak/CAS/target
|
||||
docker-compose.yaml
|
||||
node_modules
|
||||
.vscode
|
@ -18,49 +18,55 @@ components:
|
||||
user:
|
||||
type: object
|
||||
properties:
|
||||
nom:
|
||||
idUser:
|
||||
type: integer
|
||||
userSurname:
|
||||
type: string
|
||||
prenom:
|
||||
userName:
|
||||
type: string
|
||||
email:
|
||||
primaryMail:
|
||||
type: string
|
||||
example: "example@exmaple.com"
|
||||
secondaryEmail:
|
||||
secondaryMail:
|
||||
type: string
|
||||
example: "example@exmaple.com"
|
||||
tel:
|
||||
phoneNumber:
|
||||
type: string
|
||||
example: "0612345678"
|
||||
|
||||
user-entrepreneur:
|
||||
type: object
|
||||
properties:
|
||||
user:
|
||||
$ref: "#/components/schemas/user"
|
||||
entrepreneur:
|
||||
type: object
|
||||
allOf:
|
||||
- $ref: "#/components/schemas/user"
|
||||
- type: object
|
||||
properties:
|
||||
ecole:
|
||||
school:
|
||||
type: string
|
||||
example: "enseirb"
|
||||
filiere:
|
||||
course:
|
||||
type: string
|
||||
example: "info"
|
||||
status:
|
||||
sneeStatus:
|
||||
type: boolean
|
||||
example: false
|
||||
|
||||
user-admin:
|
||||
allOf:
|
||||
- $ref: "#/components/schemas/user"
|
||||
|
||||
sectionCell:
|
||||
type: object
|
||||
properties:
|
||||
admin:
|
||||
$ref: "#/components/schemas/user"
|
||||
lcsection:
|
||||
type: object
|
||||
properties:
|
||||
title:
|
||||
idSectionCell:
|
||||
type: integer
|
||||
example: this the cell (postit id)
|
||||
sectionId:
|
||||
type: integer
|
||||
contentSectionCell:
|
||||
type: string
|
||||
txt:
|
||||
modificationDate:
|
||||
type: string
|
||||
projects:
|
||||
|
||||
project:
|
||||
type: object
|
||||
properties:
|
||||
idProject:
|
||||
@ -69,6 +75,33 @@ components:
|
||||
type: string
|
||||
creationDate:
|
||||
type: string
|
||||
logo:
|
||||
example: to be discussed not yet fixed
|
||||
type: string
|
||||
format: binary
|
||||
|
||||
report:
|
||||
type: object
|
||||
properties:
|
||||
idReport:
|
||||
type: integer
|
||||
reportContent:
|
||||
type: string
|
||||
|
||||
appointement:
|
||||
type: object
|
||||
properties:
|
||||
appointmentDate:
|
||||
type: string
|
||||
appointmentTime:
|
||||
type: string
|
||||
appointmentDuration:
|
||||
type: string
|
||||
appointmentPlace:
|
||||
type: string
|
||||
appointmentSubject:
|
||||
type: string
|
||||
|
||||
|
||||
|
||||
|
||||
@ -111,13 +144,7 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
E_names:
|
||||
type: string
|
||||
description: entrepreneur names
|
||||
$ref: "#/components/schemas/project"
|
||||
"400":
|
||||
description: Bad request
|
||||
"401":
|
||||
@ -174,12 +201,7 @@ paths:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
founder:
|
||||
$ref: "#/components/schemas/user-entrepreneur"
|
||||
$ref: "#/components/schemas/project"
|
||||
|
||||
responses:
|
||||
"200":
|
||||
@ -213,14 +235,7 @@ paths:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
body:
|
||||
type: string
|
||||
conclusion:
|
||||
type: string
|
||||
$ref: "#/components/schemas/report"
|
||||
|
||||
responses:
|
||||
"200":
|
||||
@ -251,14 +266,7 @@ paths:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
body:
|
||||
type: string
|
||||
conclusion:
|
||||
type: string
|
||||
$ref: "#/components/schemas/report"
|
||||
|
||||
responses:
|
||||
"200":
|
||||
@ -308,8 +316,8 @@ paths:
|
||||
- MyINPulse-admin
|
||||
description:
|
||||
JSON array of who's elements are objects containing
|
||||
necessary information for the view (project name,
|
||||
entrepreneur names, etc..) of all pending projects.
|
||||
necessary information for the view (project name, etc..)
|
||||
of all pending projects.
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
@ -318,12 +326,7 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
founder:
|
||||
$ref: "#/components/schemas/user-entrepreneur"
|
||||
$ref: "#/components/schemas/project"
|
||||
"400":
|
||||
description: Bad request
|
||||
"401":
|
||||
@ -356,20 +359,13 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
date:
|
||||
type: string
|
||||
time:
|
||||
type: string
|
||||
$ref: "#/components/schemas/appointement"
|
||||
"400":
|
||||
description: Bad request
|
||||
"401":
|
||||
description: Authorization information is missing or invalid
|
||||
|
||||
/shared/projects/lcsection/{projectId}/{title}/{date}:
|
||||
/shared/projects/sectionCell/{projectId}/{sectionId}/{date}:
|
||||
get:
|
||||
summary: Retourne la liste de sections de LC avec un titre donné
|
||||
tags:
|
||||
@ -391,12 +387,11 @@ paths:
|
||||
type: integer
|
||||
- in: path
|
||||
required: true
|
||||
description: this number can be 1, 2,...,8. It is associated with the title of the lcsection
|
||||
name: title
|
||||
description: this number can be 1, 2,...,8. It is associated with the title of the sectionCell
|
||||
name: sectionId
|
||||
schema:
|
||||
type: integer
|
||||
enum: [1, 2, 3, 4, 5, 6, 7, 8]
|
||||
|
||||
- in: path
|
||||
required: true
|
||||
name: date
|
||||
@ -413,7 +408,7 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/lcsection"
|
||||
$ref: "#/components/schemas/sectionCell"
|
||||
"400":
|
||||
description: Bad request
|
||||
"401":
|
||||
@ -508,22 +503,13 @@ paths:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
appointementId:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
date:
|
||||
type: string
|
||||
time:
|
||||
type: string
|
||||
$ref: "#/components/schemas/appointement"
|
||||
"400":
|
||||
description: Bad request
|
||||
"401":
|
||||
description: Authorization information is
|
||||
missing or invalid
|
||||
/shared/projects/appointments/report/{apointementId}:
|
||||
/shared/projects/appointments/report/{appointmentId}:
|
||||
get:
|
||||
summary: Retourne le rapport pdf du rendez-vous
|
||||
tags:
|
||||
@ -648,7 +634,7 @@ paths:
|
||||
missing or invalid
|
||||
|
||||
|
||||
/entrepreneur/lcsection/add/{projectId}:
|
||||
/entrepreneur/sectionCell/add:
|
||||
post:
|
||||
summary: ajouter une sections au LC
|
||||
description:
|
||||
@ -659,18 +645,12 @@ paths:
|
||||
security:
|
||||
- MyINPulse:
|
||||
- MyINPulse-entrepreneur
|
||||
parameters:
|
||||
- in: path
|
||||
name: projectId
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/lcsection"
|
||||
$ref: "#/components/schemas/sectionCell"
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
@ -679,7 +659,7 @@ paths:
|
||||
"401":
|
||||
description: Authorization information is
|
||||
missing or invalid
|
||||
/entrepreneur/lcsection/modify/{sectionId}:
|
||||
/entrepreneur/sectionCell/modify:
|
||||
put:
|
||||
summary: modifier les données d'une section LC
|
||||
description:
|
||||
@ -691,18 +671,12 @@ paths:
|
||||
security:
|
||||
- MyINPulse:
|
||||
- MyINPulse-entrepreneur
|
||||
parameters:
|
||||
- in: path
|
||||
name: sectionId
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/lcsection"
|
||||
$ref: "#/components/schemas/sectionCell"
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
@ -712,7 +686,7 @@ paths:
|
||||
description: Authorization information is
|
||||
missing or invalid
|
||||
|
||||
/entrepreneur/lcsection/remove/{sectionId}:
|
||||
/entrepreneur/sectionCell/remove/{sectionCellId}:
|
||||
delete:
|
||||
summary: supprimer une section LC.
|
||||
description:
|
||||
@ -724,7 +698,7 @@ paths:
|
||||
- MyINPulse-entrepreneur
|
||||
parameters:
|
||||
- in: path
|
||||
name: sectionId
|
||||
name: sectionCellId
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
47
documentation/openapi/notes.md
Normal file
47
documentation/openapi/notes.md
Normal file
@ -0,0 +1,47 @@
|
||||
## API Endpoints notes
|
||||
|
||||
### EntrepreneurApi and SharedApi
|
||||
#### Endpoint Name Changes
|
||||
- `/entrepreneur/lcsection/modify/{sectionId}` → `/entrepreneur/sectionCell/modify/{sectionId}`
|
||||
|
||||
### Admin api
|
||||
- `/admin/appointments/upcoming`: is shared not admin
|
||||
- `/admin/projects/decision`: instanciates classes with `adminId` instead of taking the id from the token
|
||||
- `/admin/project/add`:
|
||||
- point 1: the doc has this `projects` everywhere this should be `/admin/projects/add` to avoid confusion I think
|
||||
- point 2: this doesn't assiociate users with a project I need to add other endopint for that
|
||||
- `/admin/appoitements/report/{appointmentId}`:
|
||||
- typo: `appoitements` → `appointments`
|
||||
- `/admin/projects/remove/{projectId}`, `/admin/project/add`, `/admin/projects/decision`, `/admin/projects/pending`:
|
||||
- should need token to delete or add project
|
||||
|
||||
### Entrepreneur api
|
||||
- `/entrepreneur/sectionCell/modify/{sectionId}`:
|
||||
- the section-id because of the definition of `sectionCell` schema the `sectionId` is given twice possibly leading to inconsistency. Which is why the path var to be removed:
|
||||
- → `/entrepreneur/sectionCell/modify`
|
||||
|
||||
### Shared api
|
||||
- `/shared/project/sectionCell/{projectId}/{sectionId}/{date}`:
|
||||
- point 1:
|
||||
same point for `project` → `projects`
|
||||
- point 2:
|
||||
have yet to read `sharedApiService` to see how dates are handled and to see if we agree on values of `date` to make it so it gets the version relative to current date
|
||||
- `/shared/entrepreneurs/{projectId}`:
|
||||
- maybe change to `/shared/projects/entrepreneurs/{projectId}` to match other similair endpoints like `/shared/projects/admin/{projectId}`
|
||||
- `/shared/appointment/request`:
|
||||
- creates the apointement but don't know how it associates other users, potentially multiple classes in one request body, is that possible ?
|
||||
|
||||
## TODOs for me
|
||||
|
||||
### list 1:
|
||||
- add back-end server links (backend and auth) for interacting with api through swagger
|
||||
- get config for that set up in the project
|
||||
|
||||
### list 2:
|
||||
- see what to do about logo img
|
||||
- see format for date and add it in examples
|
||||
- ask the form of return of the json of iterables, for now I have put array
|
||||
- add endpoint for adding users to a project
|
||||
- update endpoint descriptions
|
||||
- add examples for values in schemas
|
||||
|
Loading…
x
Reference in New Issue
Block a user