Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Rubick65/calenderyBack/llms.txt

Use this file to discover all available pages before exploring further.

These endpoints let authenticated users manage their own account settings, and help the app populate contact lists and user-search results with paginated, name-filtered data.

Get user settings

Returns the editable account settings for the authenticated user — including a signed Supabase URL for their current profile photo. Requires ROLE_USER and ownership (#idUsuario == authentication.principal.idUsuario).

Query parameters

idUsuario
number
required
Numeric ID of the user whose settings to fetch. Must match the authenticated principal.

Response 200 OK

nombre
string
The user’s current display name (not blank).
fotoPerfil
string
A signed Supabase Storage URL for the current profile photo.
descripcion
string
The user’s bio / description.
curl "https://api.example.com/api/users/app/getUserSettings?idUsuario=42" \
  -u "alice@example.com:s3cr3tP@ss"
Response
{
  "nombre": "Alice",
  "fotoPerfil": "https://<project>.supabase.co/storage/v1/object/sign/Avatares/42?token=...",
  "descripcion": "Hello, I am Alice!"
}

Update user settings

Persists new values for the user’s editable settings fields. Requires ROLE_USER and ownership (#idUsuario == authentication.principal.idUsuario).

Query parameters

idUsuario
number
required
Numeric ID of the user to update. Must match the authenticated principal.

Request body

nombre
string
required
Updated display name. Must not be blank.
fotoPerfil
string
Updated profile photo URL.
descripcion
string
Updated bio / description.

Response

StatusMeaning
204 No ContentSettings saved. Empty body.
403 ForbiddenidUsuario does not match the authenticated user.
curl -X PUT "https://api.example.com/api/users/app/updateUserSetting?idUsuario=42" \
  -u "alice@example.com:s3cr3tP@ss" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Alice Updated",
    "descripcion": "New bio here."
  }'

List all users

Returns an array of all UserDto records in the system. Requires an authenticated session.

Response 200 OK

An array of UserDto objects.
[].idUsuario
number
Numeric user ID.
[].nombre
string
Display name.
[].email
string
Email address.
[].descripcion
string
Bio / description.
[].keypass
string
Hashed password.
[].fotoPerfil
string
Profile photo URL.
[].clavePublica
string
E2E encryption public key.
[].cantidadSeguidores
number
Follower count.
[].cantidadSeguidos
number
Following count.
[].enable
boolean
Whether the account is activated.
[].roles
object[]
List of assigned Rol objects.
curl https://api.example.com/api/users \
  -H "Authorization: Basic <base64(email:password)>"

Update a user

Replaces a user record with the provided UserDto. Requires an authenticated session.

Request body

Full UserDto object (see fields in List all users).

Response

StatusMeaning
204 No ContentUser updated. Empty body.
curl -X PUT https://api.example.com/api/users \
  -H "Authorization: Basic <base64(email:password)>" \
  -H "Content-Type: application/json" \
  -d '{
    "idUsuario": 42,
    "nombre": "Alice",
    "email": "alice@example.com",
    "keypass": "hashed-password",
    "descripcion": "Updated bio.",
    "fotoPerfil": "https://..."
  }'

Delete a user by ID

Permanently deletes a single user record. Requires an authenticated session.

Path parameters

id
number
required
Numeric ID of the user to delete.

Response

StatusMeaning
204 No ContentUser deleted. Empty body.
curl -X DELETE https://api.example.com/api/users/42 \
  -H "Authorization: Basic <base64(email:password)>"

Delete all users

Permanently deletes every user record in the system. Use with caution. Requires an authenticated session.

Response

StatusMeaning
204 No ContentAll users deleted. Empty body.
curl -X DELETE https://api.example.com/api/users/all \
  -H "Authorization: Basic <base64(email:password)>"

Get paginated chat contacts

Returns a paginated list of the caller’s existing chat contacts, optionally filtered by display name. Each result includes the last message exchanged in the shared chat and a flag indicating unread messages. Requires ROLE_USER.

Query parameters

nombre
string
required
Name fragment to filter contacts. Pass an empty string to return all contacts.
page
number
Zero-based page number (default 0).
size
number
Number of items per page (default 10).
sort
string
Sort expression, e.g. nombre,asc.

Response 200 OK

A Spring Page envelope containing UserChatDataDto items.
content[].idUsuario
number
Contact’s numeric user ID.
content[].nombre
string
Contact’s display name.
content[].fotoPerfil
string
Contact’s profile photo URL.
content[].idChat
number
ID of the shared chat session.
content[].ultimoMensaje
string
Text of the last message in the chat.
content[].mensajeNuevo
boolean
true if there are unread messages from this contact.
totalElements
number
Total contacts matching the filter.
totalPages
number
Total number of pages.
number
number
Current page number (zero-based).
size
number
Page size used for this response.
curl "https://api.example.com/api/users/app/getUserContacts?nombre=bob&page=0&size=10" \
  -u "alice@example.com:s3cr3tP@ss"
Response
{
  "content": [
    {
      "idUsuario": 7,
      "nombre": "Bob",
      "fotoPerfil": "https://...",
      "idChat": 101,
      "ultimoMensaje": "See you tomorrow!",
      "mensajeNuevo": true
    }
  ],
  "totalElements": 1,
  "totalPages": 1,
  "number": 0,
  "size": 10
}

Search users by name

Returns a paginated list of users whose display name matches the given fragment, excluding the calling user. Designed for the “Find people” search UI. Requires ROLE_USER.

Query parameters

nombre
string
required
Name fragment to search for.
page
number
Zero-based page number (default 0).
size
number
Number of items per page (default 10).
sort
string
Sort expression, e.g. nombre,asc.

Response 200 OK

A Spring Page envelope containing UserReducedData items.
content[].idUsuario
number
Numeric user ID.
content[].nombre
string
Display name.
content[].fotoPerfil
string
Profile photo URL.
totalElements
number
Total users matching the search.
totalPages
number
Total number of pages.
number
number
Current page number (zero-based).
size
number
Page size used for this response.
curl "https://api.example.com/api/users/app/getSearchUsers?nombre=ali&page=0&size=10" \
  -u "alice@example.com:s3cr3tP@ss"
Response
{
  "content": [
    {
      "idUsuario": 99,
      "nombre": "Alicia",
      "fotoPerfil": "https://..."
    }
  ],
  "totalElements": 1,
  "totalPages": 1,
  "number": 0,
  "size": 10
}

Build docs developers (and LLMs) love