245 lines
6.6 KiB
JSON
245 lines
6.6 KiB
JSON
{
|
||
"info": {
|
||
"_postman_id": "9d74101d-f788-4dbf-83b3-11c8f9789b73",
|
||
"name": "Smoke Tracker",
|
||
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
||
"_exporter_id": "smoke-tracker"
|
||
},
|
||
"item": [
|
||
{
|
||
"name": "Auth • Signup",
|
||
"request": {
|
||
"method": "POST",
|
||
"header": [
|
||
{
|
||
"key": "Content-Type",
|
||
"name": "Content-Type",
|
||
"value": "application/json",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"body": {
|
||
"mode": "raw",
|
||
"raw": "{\n \"login\": \"smoker-demo\",\n \"password\": \"secret123\"\n}"
|
||
},
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/auth/signup",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"auth",
|
||
"signup"
|
||
]
|
||
},
|
||
"description": "Регистрация нового пользователя. Повторный вызов с тем же логином вернёт ошибку."
|
||
},
|
||
"response": []
|
||
},
|
||
{
|
||
"name": "Auth • Signin",
|
||
"event": [
|
||
{
|
||
"listen": "test",
|
||
"script": {
|
||
"type": "text/javascript",
|
||
"exec": [
|
||
"const json = pm.response.json();",
|
||
"if (json && json.body && json.body.token) {",
|
||
" pm.environment.set('smokeToken', json.body.token);",
|
||
"}"
|
||
]
|
||
}
|
||
}
|
||
],
|
||
"request": {
|
||
"method": "POST",
|
||
"header": [
|
||
{
|
||
"key": "Content-Type",
|
||
"name": "Content-Type",
|
||
"value": "application/json",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"body": {
|
||
"mode": "raw",
|
||
"raw": "{\n \"login\": \"smoker-demo\",\n \"password\": \"secret123\"\n}"
|
||
},
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/auth/signin",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"auth",
|
||
"signin"
|
||
]
|
||
},
|
||
"description": "Авторизация пользователя. Скрипт тестов сохранит JWT в переменную окружения smokeToken."
|
||
},
|
||
"response": []
|
||
},
|
||
{
|
||
"name": "Cigarettes • Log entry",
|
||
"request": {
|
||
"method": "POST",
|
||
"header": [
|
||
{
|
||
"key": "Content-Type",
|
||
"name": "Content-Type",
|
||
"value": "application/json",
|
||
"type": "text"
|
||
},
|
||
{
|
||
"key": "Authorization",
|
||
"name": "Authorization",
|
||
"value": "Bearer {{smokeToken}}",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"body": {
|
||
"mode": "raw",
|
||
"raw": "{\n \"smokedAt\": \"2025-01-01T09:30:00.000Z\",\n \"note\": \"Первая сигарета за день\"\n}"
|
||
},
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/cigarettes",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"cigarettes"
|
||
]
|
||
},
|
||
"description": "Создать запись о выкуренной сигарете. Если smokedAt не указан, сервер использует текущее время."
|
||
},
|
||
"response": []
|
||
},
|
||
{
|
||
"name": "Cigarettes • List",
|
||
"request": {
|
||
"method": "GET",
|
||
"header": [
|
||
{
|
||
"key": "Authorization",
|
||
"name": "Authorization",
|
||
"value": "Bearer {{smokeToken}}",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/cigarettes?from=2025-01-01T00:00:00.000Z&to=2025-01-07T23:59:59.999Z",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"cigarettes"
|
||
],
|
||
"query": [
|
||
{
|
||
"key": "from",
|
||
"value": "2025-01-01T00:00:00.000Z"
|
||
},
|
||
{
|
||
"key": "to",
|
||
"value": "2025-01-07T23:59:59.999Z"
|
||
}
|
||
]
|
||
},
|
||
"description": "Список сигарет текущего пользователя. Параметры from/to необязательны."
|
||
},
|
||
"response": []
|
||
},
|
||
{
|
||
"name": "Stats • Daily",
|
||
"request": {
|
||
"method": "GET",
|
||
"header": [
|
||
{
|
||
"key": "Authorization",
|
||
"name": "Authorization",
|
||
"value": "Bearer {{smokeToken}}",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/stats/daily?from=2025-01-01&to=2025-01-31",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"stats",
|
||
"daily"
|
||
],
|
||
"query": [
|
||
{
|
||
"key": "from",
|
||
"value": "2025-01-01"
|
||
},
|
||
{
|
||
"key": "to",
|
||
"value": "2025-01-31"
|
||
}
|
||
]
|
||
},
|
||
"description": "Агрегация по дням для графиков. Если from/to не заданы, используется последний месяц."
|
||
},
|
||
"response": []
|
||
},
|
||
{
|
||
"name": "Stats • Summary",
|
||
"request": {
|
||
"method": "GET",
|
||
"header": [
|
||
{
|
||
"key": "Authorization",
|
||
"name": "Authorization",
|
||
"value": "Bearer {{smokeToken}}",
|
||
"type": "text"
|
||
}
|
||
],
|
||
"url": {
|
||
"raw": "{{baseUrl}}/smoke-tracker/stats/summary?from=2025-01-01T00:00:00.000Z&to=2025-01-31T23:59:59.999Z",
|
||
"host": [
|
||
"{{baseUrl}}"
|
||
],
|
||
"path": [
|
||
"smoke-tracker",
|
||
"stats",
|
||
"summary"
|
||
],
|
||
"query": [
|
||
{
|
||
"key": "from",
|
||
"value": "2025-01-01T00:00:00.000Z"
|
||
},
|
||
{
|
||
"key": "to",
|
||
"value": "2025-01-31T23:59:59.999Z"
|
||
}
|
||
]
|
||
},
|
||
"description": "Расширенная статистика: среднее в день, статистика по дням недели, сравнение с общими показателями всех пользователей."
|
||
},
|
||
"response": []
|
||
}
|
||
],
|
||
"event": [],
|
||
"variable": [
|
||
{
|
||
"key": "baseUrl",
|
||
"value": "http://localhost:8044"
|
||
},
|
||
{
|
||
"key": "smokeToken",
|
||
"value": ""
|
||
}
|
||
]
|
||
}
|
||
|