You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
|
5 months ago
|
# Nexo dating server
|
||
|
|
|
||
|
|
Servidor independiente para la demo `Nexo`. No vive dentro de SvelteKit y no usa `+server.ts`; expone una API HTTP propia para que el cliente la consuma despues.
|
||
|
|
|
||
|
|
## Arranque
|
||
|
|
|
||
|
|
Desde la raiz del repo:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm run dating:server
|
||
|
|
```
|
||
|
|
|
||
|
|
Por defecto escucha en:
|
||
|
|
|
||
|
|
```txt
|
||
|
|
http://127.0.0.1:8787
|
||
|
|
```
|
||
|
|
|
||
|
|
PocketBase se configura con las variables locales ya guardadas en `.env.local`:
|
||
|
|
|
||
|
|
- `POCKETBASE_URL`
|
||
|
|
- `POCKETBASE_SUPERUSER_EMAIL`
|
||
|
|
- `POCKETBASE_SUPERUSER_PASSWORD`
|
||
|
|
|
||
|
|
Variables opcionales:
|
||
|
|
|
||
|
|
- `DATING_SERVER_HOST`
|
||
|
|
- `DATING_SERVER_PORT`
|
||
|
|
- `DATING_ALLOWED_ORIGINS`
|
||
|
|
- `DATING_SESSION_COOKIE`
|
||
|
|
- `DATING_SECURE_COOKIES`
|
||
|
|
|
||
|
|
## Endpoints
|
||
|
|
|
||
|
|
- `GET /health`
|
||
|
|
- `POST /api/auth/register`
|
||
|
|
- `POST /api/auth/login`
|
||
|
|
- `POST /api/auth/logout`
|
||
|
|
- `POST /api/auth/reset`
|
||
|
|
- `POST /api/auth/mfa/verify`
|
||
|
|
- `GET /api/session`
|
||
|
|
- `GET /api/profile/me`
|
||
|
|
- `PUT /api/profile/me`
|
||
|
|
- `POST /api/profile/photos`
|
||
|
|
- `DELETE /api/profile/photos/:filename`
|
||
|
|
- `PATCH /api/profile/photos/order`
|
||
|
|
- `PATCH /api/profile/photos/main`
|
||
|
|
- `GET /api/discover`
|
||
|
|
- `POST /api/likes`
|
||
|
|
- `GET /api/matches`
|
||
|
|
- `GET /api/matches/:matchId/messages`
|
||
|
|
- `POST /api/matches/:matchId/messages`
|
||
|
|
- `POST /api/safety/block`
|
||
|
|
- `POST /api/safety/report`
|
||
|
|
- `GET /api/admin/reports`
|
||
|
|
- `POST /api/admin/reports/:id/resolve`
|
||
|
|
- `GET /api/devtools/snapshot`
|
||
|
|
|
||
|
|
## Sesion
|
||
|
|
|
||
|
|
El servidor usa una cookie HTTP-only llamada `dating_session`. Tambien acepta `Authorization: Bearer <token>` para pruebas locales, aunque el cliente deberia usar cookies con `credentials: "include"`.
|
||
|
|
|
||
|
|
## Fotos
|
||
|
|
|
||
|
|
Las fotos se guardan en PocketBase, campo `dating_profiles.photos`, usando el filesystem local de PocketBase (`pb_data/storage`). El servidor valida tipo, tamano y permisos antes de enviar el archivo a PocketBase.
|