This is the backend (json.server Fake API) of the Ballet Class Planner - An application for teachers to plan their classes, and for students to access them.
Este é o backend (json.server Fake API) do Planejdor de Aulas de Ballet - Uma aplicação para professoras e professores planejarem suas aulas e para estudantes acessa-las.
As stated in JSON-Server-Auth Documentation, there are 3 endpoints that can be used to create a new user and 2 endpoints for login. Assim como a documentação do JSON-Server-Auth, existem 3 endpoints que podem ser utilizados para cadastro e 2 endpoints que podem ser usados para login.
BASE URI:
ballet-class-planner.herokuapp.com/
Register|Cadastro
POST - /register
POST - /signup
POST - /users
pt-BR
Qualquer um desses 3 endpoints irá cadastrar o usuário na lista de "Users", sendo que os campos obrigatórios são os de email e password. Para essa aplicação é recomendado a adição de um tipo (teacher ou student) e de um array vazio de teachers se o tipo for student e de students se o tipo for teacher.
POST - /login
POST - /signin
pt-BR
Qualquer um desses 2 endpoints pode ser usado para realizar login com um dos usuários cadastrados na lista de "Users". Todos os endpoints a seguir precisam de um token para serem utilizados.
User| Usuário
GET - /users/:id
PUT - /users/:id
PATCH - /users/:id
DELETE - /users/:id
requires token
pt-BR
Utilizer esses endpoints para acessar (GET) os detalhes de um usuário, atualizar (PUT, PATCH) um usuário, ou remover (DELETE) um usuário do banco de dados.
token necessário
Classes| Aulas
POST - /classes
PUT - /classes/:id
PATCH - /classes/:id
DELETE - /classes/:id
Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.
requires token
pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário
POST /classes - Body Content
Conteúdo do body
{
"name": "Ballet Class 1st Year",
"userId": 1
}
POST /classes - Response Format - 200 Ok
Formato da resposta
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1
}
POST /classes - Response Format - 403 Forbidden (No user ID)
Formato da resposta sem ID do usuário
{
"Private resource creation: request body must have a reference to the owner id"
}
GET /classes - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1
}
]
GET users/:userId/classes - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1
}
]
GET /classes/:classId - Response Format - 200 Ok
Formato da resposta
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1
}
GET /classes?name=Ballet Class 1st Year - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1
}
]
GET /classes/:classId?_embed=exercises - Response Format - 200 Ok
Formato da resposta
{
"name": "Ballet Class 1st Year",
"userId": 1,
"id": 1,
"exercises": [
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id": 1
},
{
"name": "Tandu",
"classId": 1,
"userId": 1,
"id": 2
},
{
"name": "Glissé",
"classId": 1,
"userId": 1,
"id": 3
},
{
"name": "Jeté",
"classId": 1,
"userId": 1,
"id": 4
}
]
}
Exercises| Exercícios
POST - /exercises
PUT - /exercises/:id
PATCH - /exercises/:id
DELETE - /exercises/:id
Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id along with the class id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.
requires token
pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário junto com o id da aula deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário
POST /exercises - Body Content
Conteúdo do body
{
"name": "Pliés",
"classId": 1,
"userId": 1
}
POST /exercises - Response Format - 200 Ok
Formato da resposta
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id":1,
}
POST /exercises - Response Format - 403 Forbidden (No user ID)
Formato da resposta sem ID do usuário
{
"Private resource creation: request body must have a reference to the owner id"
}
GET /exercises - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id": 1
},
{
"name": "Tandu",
"classId": 1,
"userId": 1,
"id": 2
},
{
"name": "Glissé",
"classId": 1,
"userId": 1,
"id": 3
},
{
"name": "Jeté",
"classId": 1,
"userId": 1,
"id": 4
}
]
GET classes/:classId/exercises - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id": 1
},
{
"name": "Tandu",
"classId": 1,
"userId": 1,
"id": 2
},
{
"name": "Glissé",
"classId": 1,
"userId": 1,
"id": 3
},
{
"name": "Jeté",
"classId": 1,
"userId": 1,
"id": 4
}
]
GET /exercises/:exerciseId - Response Format - 200 Ok
Formato da resposta
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id": 1
}
GET /exercises?name=Tendu - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Tandu",
"classId": 1,
"userId": 1,
"id": 2
}
]
GET /exercises?_embed=sequences - Response Format - 200 Ok
Formato da resposta
[
{
"name": "Pliés",
"classId": 1,
"userId": 1,
"id": 1,
"sequences": [
{
"sequence": [
"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
"4ª - 2x Grand: 16t, Suplesse Out: 8t",
"5ª - 2x Grand: 16t, Cambret: 8t",
"Sous-sus, detourne, talon, degagé, 1ª: 6t",
"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
],
"music": {
"name": "Lucy",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 1,
"classId": 1,
"userId": 1,
"id": 1
}
]
},
{
"name": "Tandu",
"classId": 1,
"userId": 1,
"id": 2,
"sequences": [
{
"sequence": [
"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
"Repeat en dedans",
"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
"Repeat en dedans"
],
"music": {
"name": "Grape Vine",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 2,
"classId": 1,
"userId": 1,
"id": 2
}
]
},
{
"name": "Glissé",
"classId": 1,
"userId": 1,
"id": 3,
"sequences": [
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t",
"Repeat en dedans",
"1ª - En croix en dehors: 16t 2x: 4t",
"Sous-sus, detourne, talon, degagé, 1ª",
"repeat other side"
],
"music": {
"name": "Eileen",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 3,
"classId": 1,
"userId": 1,
"id": 3
}
]
},
{
"name": "Jeté",
"classId": 1,
"userId": 1,
"id": 4,
"sequences": [
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
"Repeat en dedans",
"1ª - Em croix em dehors: 32t:",
"En Croix en dehors: 1x (4t) - hold out",
"En Croix en dedans: 1x (4t) - hold out",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"sous-sus / detourne"
],
"music": {
"name": "Madonna",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 4,
"classId": 1,
"userId": 1,
"id": 4
}
]
}
]
Sequences| Sequências
POST - /sequences
PUT - /sequences/:id
PATCH - /sequences/:id
DELETE - /sequences/:id
Write permissions (PUT, PATCH, DELETE) only available for owner's token, the owner id along with the class id and exercise id must be passed at the moment of creation (POST). Can be seen by all registered users, any access restrictions must be performed on the frontend.
requires token
pt-BR
Permissões de edição (PUT, PATCH, DELETE) disponível apenas para o token do proprietário o id do proprietário junto com o id da aula e o id do exercício deve ser passado no momento da criação (POST). Podem ser vizualizadas por qualquer usuário logado, restrições de visualização devem ser realizadas no frontend
token necessário
POST /sequences - Body Content
Conteúdo do body
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
"Repeat en dedans",
"1ª - Em croix em dehors: 32t:",
"En Croix en dehors: 1x (4t) - hold out",
"En Croix en dedans: 1x (4t) - hold out",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"sous-sus / detourne"
],
"music": {
"name": "Madonna",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": "" //optional
},
"exerciseId": 4,
"classId": 1,
"userId": 1,
}
POST /sequences - Response Format - 200 Ok
Formato da resposta
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
"Repeat en dedans",
"1ª - Em croix em dehors: 32t:",
"En Croix en dehors: 1x (4t) - hold out",
"En Croix en dedans: 1x (4t) - hold out",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"sous-sus / detourne"
],
"music": {
"name": "Madonna",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": "" //optional
},
"exerciseId": 4,
"classId": 1,
"userId": 1,
"id": 4,
}
POST /sequences - Response Format - 403 Forbidden (No user ID)
Formato da resposta sem ID do usuário
{
"Private resource creation: request body must have a reference to the owner id"
}
All sequences Todos exercícios
GET /sequences - Response Format - 200 Ok
Formato da resposta
[
{
"sequence": [
"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
"4ª - 2x Grand: 16t, Suplesse Out: 8t",
"5ª - 2x Grand: 16t, Cambret: 8t",
"Sous-sus, detourne, talon, degagé, 1ª: 6t",
"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
],
"music": {
"name": "Lucy",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 1,
"classId": 1,
"userId": 1,
"id": 1
},
{
"sequence": [
"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
"Repeat en dedans",
"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
"Repeat en dedans"
],
"music": {
"name": "Grape Vine",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 2,
"classId": 1,
"userId": 1,
"id": 2
},
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t",
"Repeat en dedans",
"1ª - En croix en dehors: 16t 2x: 4t",
"Sous-sus, detourne, talon, degagé, 1ª",
"repeat other side"
],
"music": {
"name": "Eileen",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 3,
"classId": 1,
"userId": 1,
"id": 3
},
{
"sequence": [
"1ª - En croix en dehors: 16t, 1x: 4t - hold-out: 3t",
"Repeat en dedans",
"1ª - Em croix em dehors: 32t:",
"En Croix en dehors: 1x (4t) - hold out",
"En Croix en dedans: 1x (4t) - hold out",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"En Croix en dehors: 1x (4t) - hold out / 1x (1t) - wait (3t)",
"sous-sus / detourne"
],
"music": {
"name": "Madonna",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 4,
"classId": 1,
"userId": 1,
"id": 4
}
]
GET exercises/:exerciseId/sequences - Response Format - 200 Ok
Formato da resposta
[
{
"sequence": [
"1ª - En Croix en dehors: 16t, 1x: 2t, 2x: 1t",
"Repeat en dedans",
"1ª - Em Croix em dehors: 16t, Tandu, foundue, fermé, alongé: 4t",
"Repeat en dedans"
],
"music": {
"name": "Grape Vine",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 2,
"classId": 1,
"userId": 1,
"id": 2
}
]
GET /sequences/:sequenceId - Response Format - 200 Ok
Formato da resposta
{
"sequence": [
"1ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse: 8t",
"2ª - 2x Demi: 8t, 1x Grand: 8t, 1x Suplesse Barra: 8t",
"4ª - 2x Grand: 16t, Suplesse Out: 8t",
"5ª - 2x Grand: 16t, Cambret: 8t",
"Sous-sus, detourne, talon, degagé, 1ª: 6t",
"1ª - 4x Elevé: 8t, 4x Demi (demi-pointe): 8t, Balance"
],
"music": {
"name": "Lucy",
"album": "60s",
"artist": "Andrew Holdsworth",
"link": ""
},
"exerciseId": 1,
"classId": 1,
"userId": 1,
"id": 1
}