Profile Server API
Endpoints

Organization Contacts

CRUD de contatos vinculados a organizações (cooperativas).

Contatos de uma organização (PHONE, EMAIL, URL). Base path: /api/organization-contacts · autenticação de usuário.

MétodoRotaScopeResourceSucesso
POST/api/organization-contactscreateresource:organization-contacts201
GET/api/organization-contactsreadresource:organization-contacts200
GET/api/organization-contacts/:idreadresource:organization-contacts_id200
PUT/api/organization-contacts/:idupdateresource:organization-contacts_id200
DELETE/api/organization-contacts/:iddeleteresource:organization-contacts_id204

Criar contato

POST /api/organization-contacts — vincula um contato a uma organização existente.

Corpo

CampoTipoObrigatórioRegras
organizationIduuidsimOrganização existente (404 se não existir)
typeenumsimPHONE, EMAIL ou URL
descriptionstringnãopode ser null
valuestringsimmín. 1 caractere; e-mail válido se type=EMAIL; URL válida se type=URL
isPrimarybooleannãopadrão false; ao marcar true, desmarca os demais primários da mesma organização
curl -X POST http://localhost:3000/api/organization-contacts \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
    "type": "EMAIL",
    "description": "Contato principal",
    "value": "contato@reciclaja.org",
    "isPrimary": true
  }'

201 Created

{
  "id": "c1b2c3d4-e5f6-4789-a123-456789abcdef",
  "organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
  "type": "EMAIL",
  "description": "Contato principal",
  "value": "contato@reciclaja.org",
  "isPrimary": true,
  "createdAt": "2026-07-13T12:00:00.000Z",
  "updatedAt": "2026-07-13T12:00:00.000Z"
}

404 Not Found — o organizationId informado não existe. O use case valida a referência antes de criar o contato.


Listar contatos

GET /api/organization-contacts — lista paginada (page, limit).

Filtros opcionais: organizationId (uuid), type (PHONE | EMAIL | URL), isPrimary (true | false).


Obter contato por id

GET /api/organization-contacts/:id404 se não existir.


Editar contato

PUT /api/organization-contacts/:id — atualização parcial.

CampoTipoRegras
typeenumPHONE, EMAIL ou URL
descriptionstringou null
valuestringmín. 1 caractere; validação de e-mail/URL quando type e value forem enviados juntos
isPrimarybooleanao marcar true, desmarca os demais primários da mesma organização

Retorna 200; 404 se não existir.


Remover contato

DELETE /api/organization-contacts/:id — retorna 204 No Content; 404 se não existir.