Report lost dogs service. It also streams new alerts to a certain location (lat/log defined).
go install github.com/vektra/mockery/v2@latestRun mocks
mockery --name=DogRepository --output=internal/mocks --outpkg=mocks --dir=internal/ports
mockery --name=UserRepository --output=internal/mocks --outpkg=mocks --dir=internal/ports
mockery --name=ReportService --output=internal/mocks --outpkg=mocks --dir=internal/applicationRegister an user (POST /users)
curl -X POST http://localhost:8080/users \
-H "Content-Type: application/json" \
-d '{
"name": "PerritoPanzon",
"email": "perritopanzon@example.com",
"latitude": 19.4326,
"longitude": -99.1332,
"phone": "5793750295",
"radius_km": 10
}'Register a dog (POST /dogs)
curl -X POST http://localhost:8080/dogs \
-H "Content-Type: application/json" \
-d '{
"name": "Firulais",
"breed": "Labrador",
"description": "Todo panzon, todo bonito",
"photo_url": "https://ejemplo.com/foto.jpg"
}'Register a report for a lost dog (POST /reports)
curl -X POST http://localhost:8080/reports \
-H "Content-Type: application/json" \
-d '{
"dog_id": "a2b85c94-7939-4cb8-94e1-210626da9c4a",
"type": "lost",
"location": "19.4326,-99.1332",
"details": "Se perdió cerca del parque"
}'Get near reports (GET /reports?location=LAT,LON&radius_km=KM)
curl "http://localhost:8080/reports?location=19.4326,-99.1332&radius_km=10"SSE Stream
curl -N http://localhost:8080/alerts/stream/:id