Skip to content

Commit ff37a35

Browse files
committed
criado serviço que retorna ultimas posiçoes de um veiculo
1 parent 4387f9d commit ff37a35

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

router/router.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ func veiculosRoutes(s store.Storer) chi.Router {
6666
}
6767
json.NewEncoder(w).Encode(veiculos)
6868
})
69-
// r.Get("/{codigo}", func(w http.ResponseWriter, r *http.Request) {
70-
// codigo := chi.URLParam(r, "codigo")
71-
// linha, err := s.Linha(codigo)
72-
// if err != nil {
73-
// w.WriteHeader(http.StatusInternalServerError)
74-
// json.NewEncoder(w).Encode(err)
75-
// return
76-
// }
77-
// json.NewEncoder(w).Encode(linha)
78-
// })
69+
r.Get("/{codigo}", func(w http.ResponseWriter, r *http.Request) {
70+
codigo := chi.URLParam(r, "codigo")
71+
veiculo, err := s.Veiculo(codigo)
72+
if err != nil {
73+
w.WriteHeader(http.StatusInternalServerError)
74+
json.NewEncoder(w).Encode(err)
75+
return
76+
}
77+
json.NewEncoder(w).Encode(veiculo)
78+
})
7979
return r
8080
}

store/mongo.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,22 @@ func (ms *MongoStore) Veiculos() (veiculos model.Veiculos, err error) {
7070
}
7171
return
7272
}
73+
74+
// Linhas retorna uma lista de veiculo por codigo
75+
func (ms *MongoStore) Veiculo(codigo string) (veiculos model.Veiculos, err error) {
76+
77+
cur, err := ms.db.Collection("veiculos").Find(ms.ctx, bson.M{"cod": codigo})
78+
if err != nil {
79+
return
80+
}
81+
for cur.Next(ms.ctx) {
82+
var veiculo model.Veiculo
83+
err = cur.Decode(&veiculo)
84+
if err != nil {
85+
veiculos = model.Veiculos{}
86+
return
87+
}
88+
veiculos = append(veiculos, veiculo)
89+
}
90+
return
91+
}

store/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ type Storer interface {
99
Linhas() (model.Linhas, error)
1010
Linha(codigo string) (model.Linha, error)
1111
Veiculos() (model.Veiculos, error)
12-
// Veiculo(codigo string) (model.Veiculo, error)
12+
Veiculo(codigo string) (model.Veiculos, error)
1313
// VeiculosLinhas(codigoLinha string) (model.Veiculos, error)
1414
}

0 commit comments

Comments
 (0)