Small improvements
This commit is contained in:
@@ -2,6 +2,7 @@ package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
@@ -112,6 +113,16 @@ func (s MongoDBStorage) CreateBooking(booking Booking) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s MongoDBStorage) UpdateBooking(booking Booking) error {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
if _, err := collection.ReplaceOne(context.TODO(), bson.M{"_id": booking.ID}, booking); err != nil {
|
||||
fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
func (s MongoDBStorage) GetBooking(id string) (*Booking, error) {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
|
||||
@@ -124,6 +135,35 @@ func (s MongoDBStorage) GetBooking(id string) (*Booking, error) {
|
||||
return booking, nil
|
||||
}
|
||||
|
||||
func (s MongoDBStorage) GetBookings() (bookings []Booking, err error) {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
|
||||
var cur *mongo.Cursor
|
||||
|
||||
findOptions := options.Find()
|
||||
cur, err = collection.Find(context.TODO(), bson.D{}, findOptions)
|
||||
if err != nil {
|
||||
return bookings, err
|
||||
}
|
||||
|
||||
for cur.Next(context.TODO()) {
|
||||
var booking Booking
|
||||
var elem bson.M
|
||||
|
||||
if err := cur.Decode(&elem); err != nil {
|
||||
return bookings, err
|
||||
}
|
||||
|
||||
bsonBytes, _ := bson.Marshal(elem)
|
||||
bson.Unmarshal(bsonBytes, &booking)
|
||||
|
||||
bookings = append(bookings, booking)
|
||||
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (s MongoDBStorage) GetBookingsForVehicle(vehicleid string) (bookings []Booking, err error) {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
|
||||
@@ -153,6 +193,35 @@ func (s MongoDBStorage) GetBookingsForVehicle(vehicleid string) (bookings []Book
|
||||
return
|
||||
}
|
||||
|
||||
func (s MongoDBStorage) GetBookingsForDriver(driver string) (bookings []Booking, err error) {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
|
||||
var cur *mongo.Cursor
|
||||
|
||||
findOptions := options.Find()
|
||||
cur, err = collection.Find(context.TODO(), bson.M{"driver": driver}, findOptions)
|
||||
if err != nil {
|
||||
return bookings, err
|
||||
}
|
||||
|
||||
for cur.Next(context.TODO()) {
|
||||
var booking Booking
|
||||
var elem bson.M
|
||||
|
||||
if err := cur.Decode(&elem); err != nil {
|
||||
return bookings, err
|
||||
}
|
||||
|
||||
bsonBytes, _ := bson.Marshal(elem)
|
||||
bson.Unmarshal(bsonBytes, &booking)
|
||||
|
||||
bookings = append(bookings, booking)
|
||||
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (s MongoDBStorage) DeleteBooking(bookingid string) error {
|
||||
collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"])
|
||||
|
||||
|
||||
@@ -14,8 +14,11 @@ type Storage interface {
|
||||
|
||||
//Bookings management
|
||||
CreateBooking(Booking) error
|
||||
UpdateBooking(Booking) error
|
||||
GetBooking(id string) (*Booking, error)
|
||||
GetBookings() ([]Booking, error)
|
||||
GetBookingsForVehicle(vehicleid string) ([]Booking, error)
|
||||
GetBookingsForDriver(driver string) ([]Booking, error)
|
||||
DeleteBooking(id string) error
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user