API to create, fetch and search PDV's
2.5.0
5.2.0
9.4+
2.2+
http://rvm.io/
rvm install 2.5.0
rvm gemset create delivery_app
rvm gemset use delivery_app
gem install bundler
bundle install
bundle exec rails db:create
bundle exec rails db:migrate
bundle exec rails db:seed # To populate PDV list
bundle exec rails s
To run tests and generate coverage report:
RAILS_ENV=test bundle exec rails db:migrate
bundle exec rails spec
Master branch are setted to continuos delivery when build success
Send a request:
POST http://127.0.0.1:3000/pdvs
With Body:
{
"tradingName": "Adega da Cerveja - Pinheiros",
"ownerName": "Zé da Silva",
"document": "1432132123891/0001",
"coverageArea": {
"type": "MultiPolygon",
"coordinates": [[[[30, 20],[45, 40],[10, 40],[30, 20]]]]
},
"address": {
"type": "Point",
"coordinates": [20, 35]
}
}
Response 200 ok:
{
"pdv": {
"id": 3,
"tradingName": "Adega da Cerveja - Pinheiros",
"ownerName": "Zé da Silva",
"document": "1432132123891/0001",
"coverageArea": {
"type": "MultiPolygon",
"coordinates": [[[[30,20],[45,40],[10,40],[30,20]]]]
},
"address": {
"type": "Point",
"coordinates": [20,35]
}
},
"successful": true
}
Send a request:
GET http://127.0.0.1:3000/pdvs/:id
Response 200 ok:
{
"pdv": {
"id": 3,
"tradingName": "Adega da Cerveja - Pinheiros",
"ownerName": "Zé da Silva",
"document": "1432132123891/0001",
"coverageArea": {
"type": "MultiPolygon",
"coordinates": [[[[30,20],[45,40],[10,40],[30,20]]]]
},
"address": {
"type": "Point",
"coordinates": [20,35]
}
},
"successful": true
}
Send a request:
GET http://127.0.0.1:3000/pdvs/search?lng=-43.29&lat=-23.01
Response 200 ok:
{
"pdv": {
"id": 3,
"tradingName": "Adega da Cerveja - Pinheiros",
"ownerName": "Zé da Silva",
"document": "1432132123891/0001",
"coverageArea": {
"type": "MultiPolygon",
"coordinates": [[[[30,20],[45,40],[10,40],[30,20]]]]
},
"address": {
"type": "Point",
"coordinates": [20,35]
}
},
"successful": true
}
/graphql
query {
pdv(id: 51) {
id
tradingName
ownerName
document
}
}
query {
searchPdv(lng: -43.29, lat: -23.01) {
id
tradingName
ownerName
document
}
}