How mshchebetiuk/chatspace works
ChatSpace is a chat API. Clients register or log in, then use a bearer token to access private conversations, create or list conversations, mark them read, and send, page through, edit, or delete messages. The implementation separates HTTP routing, authentication and validation, conversation orchestration, and persistence through Prisma. The excerpts show direct route and service calls and database operations; the message service is substantial but its caller is not established by the supplied evidence, so it is shown without an inferred connection.
Main entry points: auth.routes.ts Auth endpoints · app.ts Express app · prisma.ts Prisma client · message.routes.ts Message endpoints
Components 19
API entry
- Server startup
server/src/server.ts - Express app
server/src/app.ts - Error responses
server/src/middlewares/errorHandler.ts - API response types
server/src/types/api.types.ts
Identity and validation
- Auth endpoints
server/src/routes/auth.routes.ts - Auth validation
server/src/validators/auth.schema.ts - Login rate limit
server/src/middlewares/login-rate-limit.middleware.ts - Bearer authentication
server/src/middlewares/auth.middleware.ts - JWT signing
server/src/config/jwt.ts
Conversation and messaging
- Conversation endpoints
server/src/routes/conversation.routes.ts - Conversation handlers
server/src/controllers/conversation.controller.ts - Conversation validation
server/src/validators/conversation.schema.ts - Conversation operations
server/src/services/conversation.service.ts - Message endpoints
server/src/routes/message.routes.ts - Message validation
server/src/validators/message.schema.ts - Message service
server/src/services/message.service.ts
Persistence
- Prisma client
server/src/config/prisma.ts - PostgreSQL data
server/prisma/schema.prisma
Other components
- API client
Connections 28
- API client → Express app: sends requests
server/src/app.ts - Server startup → Express app: starts listener
server/src/server.ts - Server startup → Prisma client: checks connection
server/src/server.ts - Express app → Auth endpoints: mounts auth
server/src/app.ts - Express app → Conversation endpoints: mounts conversations
server/src/app.ts - Express app → Error responses: handles errors
server/src/app.ts - Auth endpoints → Auth validation: validates input
server/src/routes/auth.routes.ts - Auth endpoints → Login rate limit: limits login
server/src/routes/auth.routes.ts - Auth endpoints → JWT signing: signs token
server/src/routes/auth.routes.ts - Auth endpoints → Bearer authentication: guards profile
server/src/routes/auth.routes.ts - Bearer authentication → JWT signing: verifies token
server/src/middlewares/auth.middleware.ts - Auth endpoints → Prisma client: reads and writes users
server/src/routes/auth.routes.ts - Conversation endpoints → Bearer authentication: guards routes
server/src/routes/conversation.routes.ts - Conversation endpoints → Conversation handlers: dispatches handlers
server/src/routes/conversation.routes.ts - Conversation endpoints → Message endpoints: mounts messages
server/src/routes/conversation.routes.ts - Conversation handlers → Conversation validation: validates input
server/src/controllers/conversation.controller.ts - Conversation handlers → Conversation operations: calls operations
server/src/controllers/conversation.controller.ts - Conversation operations → Prisma client: queries chat data
server/src/services/conversation.service.ts - Message endpoints → Bearer authentication: guards messages
server/src/routes/message.routes.ts - Message endpoints → Message validation: validates input
server/src/routes/message.routes.ts - Message endpoints → Prisma client: reads and writes messages
server/src/routes/message.routes.ts - Message service → Prisma client: uses client
server/src/services/message.service.ts - Prisma client → PostgreSQL data: persists data
- Express app → API response types: formats responses
server/src/app.ts - Error responses → API response types: formats responses
server/src/middlewares/errorHandler.ts - Auth endpoints → API response types: formats responses
server/src/routes/auth.routes.ts - Conversation handlers → API response types: formats responses
server/src/controllers/conversation.controller.ts - Message endpoints → API response types: formats responses
server/src/routes/message.routes.ts