Потрібно передати, приклад: { "email":"andreyservis2332@ukr.net", "password":"123456" }
https://kapusta-project-back-production.up.railway.app/api/users/register
Відповідь: {message: "User registration was successful, a verification email and@and.com was sent to you"}
Якщо користувач зареєстрований, але ще не пройшов верифікацію, йому буде відправлене посилання для верифікації, потрібно перейти в пошту та пройти верифікацію.
Після верифікацію з пошти відбувається redirect на сторінку
https://eimanager.netlify.app/
в параметрах буде переданий accessToken й
refreshToken Його краще обробити й записати в localStorage Інформація ще є в
"GET Верифікація користувача "
Вхід в систему через email та password (login)
https://kapusta-project-back-production.up.railway.app/api/users/login
Відповідь, коли верифікацію пройдено : { "_id": "63f22620ab2035b9989fbbc4", "password": "$2a$10$iwFZRZGOng2Z1MFu7FAYBOfuVj9/Oexuge2ZlEiaixZPp7OqwtFiu", "email": "andreyservis@ukr.net", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYzZjIyNjIwYWIyMDM1Yjk5ODlmYmJjNCIsImlhdCI6MTY3NjkxMjIwMCwiZXhwIjoxNjc5NTA0MjAwfQ.mXZzioPmzhmJ8JOE4uv3QgeoVydbk-mhFeDo5nET8YI", "balance": 200000, "verify": true, "verificationToken": null, "createdAt": "2023-02-19T13:37:36.506Z", "updatedAt": "2023-02-20T16:56:40.701Z" }
Карточці User записуються нові дані <accessToken: null> та <refreshToken: null> Також потрібно видалити токен в localStorage
https://kapusta-project-back-production.up.railway.app/api/users/logout
Потрібно передати: { "balance":200000 }
-
https://kapusta-project-back-production.up.railway.app/api/users/balance
Відповідь успішної транзакції: { "balance":200000, "firstBalance: true" }
Потрібно зробити запит, відповідь прийде якщо токен записаний в config.headers.Authorization
https://kapusta-project-back-production.up.railway.app/api/users/get-user
Відповідь: { "accessToken": ".......","refreshToken":"....", "_id": "63f647e7ecd31043a14be05a", "email": "andrey301288@gmail.com", "userName": "andrey301", "avatarUrl": "", "balance": 100000, "verificationToken": null, "verify": true }
При реєстрації створюється користувач з: -- <verify: false> -- <verificationToken: "Fda8EyukRCVXpU2ofhEFj"> На пошту відправляється посилання, щоб пройти верифікацію. Після верифікації в карточку User записуються нові дані: -- <verify: true> -- <verificationToken: null>
Приклад як можна обіграти через axios передачу токена в <config.headers.Authorization>
- const instance = axios.create({ baseURL: 'https://kapusta-project-back-production.up.railway.app', });
міделвер для додавання токена якщо користувач ввійшов в систему
-
instance.interceptors.request.use((config) => { config.headers.Authorization = window.localStorage.getItem("token"); return config; });
-
https://kapusta-project-back-production.up.railway.app/api/users/verify/:verificationToken
коли проходите верифікацію, створюється пара токенів й передається в параметрах як refreshToken та accessToken
Потрібно передати image
https://kapusta-project-back-production.up.railway.app/upload
- Відповідь: { "url": "/uploads/IMG_6976.png" }
Можна оновити: {userName:...., avatarUrl:......, password: .....}
https://kapusta-project-back-production.up.railway.app/api/users/update-user
Відповідь: Карточка User
Потрібно передати: {email: .......}
https://kapusta-project-back-production.up.railway.app/api/users/refresh-password
Відповідь:
- 201 { "message": "Password recovery email was successful !" }
- Буде відправлено новий згенерований пароль на пошту
- 409 { "message": "User with this email 'andrey301288@gmail.co' is not in the database. Please register" }
- 401 { "message": "Please confirm the mail and@gmail.com by verifying" }
Користувач на початку першого входу: {firstVisit: false}
https://kapusta-project-back-production.up.railway.app/api/users/first-visit
Відправляєте запит на бек Змінює статус користувача на {firstVisit: true}, але відповідь йде зі старим статусом. Якщо користувач вже {firstVisit: true} то нічого не змінюється й повертається статус що користувач вже не перший раз заходить.
Потрібно передати: {password : .......}
https://kapusta-project-back-production.up.railway.app/api/users/password-verification
Відповідь: {status: <true або false>}
Потрібно передати вид транзакціям {operation: "income"} або {operation: "expenses"}
https://kapusta-project-back-production.up.railway.app/api/transaction/operation
Відповідь: [{},{},{}]
Потрібно передати: "{ "operation":"expenses", "description":"Купівля поні 2", "date": "17.02.2023", "month": "February", "year":"2023", "category":"Other", "sum":"5000", "currency":"UAH" }"
https://kapusta-project-back-production.up.railway.app/api/transaction/new
Відповідь: { "data": { "operation": "expenses", "description": "Купівля поні 2", "category": "Other", "sum": 32000, "date": "01.03.2023", "month": "March", "year": "2023", "currency": "UAH", "userId": "63f8ec1fe303b362792abbe5", "_id": "63f915ddd03434efdbb4953c", "createdAt": "2023-02-24T19:54:05.719Z", "updatedAt": "2023-02-24T19:54:05.719Z" }, "user": { "balance": -32000 } }
Потрібно передати id транзакції
https://kapusta-project-back-production.up.railway.app/api/transaction/delete/${< id-транзакції>}
Автоматично змінюється баланс в користувача й записується в карточку
Відповідь успішної операції: { "id": "63f78fd91fcc9d9cf934d633", "user": { "balance": 100000 } }
потрібно передати вид транзакціям {operation: "income"} або {operation: "expenses"}
https://kapusta-project-back-production.up.railway.app/api/transaction/summary
Відповідь:
- [ { "month": "March", "sum": 163000, "monthNumber": 0.2 } ]
Потрібно передати: { month, year, operation }
https://kapusta-project-back-production.up.railway.app/api/transaction/all-summary-reports
Відповідь: [ { "operation": "expenses", "sum": 96000 }, { "operation": "income", "sum": 96000 } ]
Потрібно передати: { month, year, operation }
https://kapusta-project-back-production.up.railway.app/api/transaction/category-reports
Відповідь: [ { "category": "Other", "sum": 96000 } ]
Потрібно передати: { month, year, operation, category }
https://kapusta-project-back-production.up.railway.app/api/transaction/items-category-reports
Відповідь: [ { "category": "Other", "sum": 96000 } ]