Skip to content

Feature/rest api#6

Merged
soraiayugulis merged 8 commits into
mainfrom
feature/rest-api
Jun 12, 2026
Merged

Feature/rest api#6
soraiayugulis merged 8 commits into
mainfrom
feature/rest-api

Conversation

@soraiayugulis

Copy link
Copy Markdown
Owner

Summary

Implements all 8 REST API endpoints specified in the design, with request validation, proper HTTP status codes, and MockMvc integration tests.

Changes

DTOs

  • CardRegistrationRequest/Response — card creation with 16-digit validation
  • BalanceAdditionRequest/Response — category balance management
  • TransactionRequest/Response — authorization requests with status/error tracking
  • TransactionHistoryResponse — chronological transaction list
  • MerchantRegistrationRequest/Response — merchant creation with category
  • CardStatusUpdateRequest — activate/deactivate

Controllers

  • CardController — 6 endpoints: register, add balance, query balance, transaction history, status update, card details
  • TransactionController — POST /transactions with full authorization flow (validates card, merchant, amount, balance, daily limit)
  • MerchantController — POST /merchants with name/category validation

Error Handling

  • CardNotFoundException → 404
  • MerchantNotFoundException → 404
  • Bean Validation → 400 for invalid inputs

Tests

  • 94 unit tests — all passing
  • MockMvc standalone setup for all controllers
  • Covers: success paths, validation errors, not-found scenarios

Spec Coverage

Endpoint Status
POST /cards
POST /cards/{id}/balance
GET /cards/{id}/balance/{category}
POST /transactions
GET /cards/{id}/transactions
POST /merchants
PUT /cards/{id}/status
GET /cards/{id}

@soraiayugulis soraiayugulis self-assigned this Jun 12, 2026
@soraiayugulis soraiayugulis merged commit 7b71a63 into main Jun 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant