Skip to content

AlanDavd/calartapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calart REST API

Report lost dogs service. It also streams new alerts to a certain location (lat/log defined).

Mocks

go install github.com/vektra/mockery/v2@latest

Run 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/application

Endpoint Examples

Register 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

About

REST API for the Calart project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published