Created
August 31, 2021 06:55
-
-
Save percybolmer/45e374c2cbfb760f45678b8eb0b97276 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Package main runs the tavern and performs an Order | |
package main | |
import ( | |
"github.com/google/uuid" | |
"github.com/percybolmer/tavern/domain/product" | |
"github.com/percybolmer/tavern/services/order" | |
servicetavern "github.com/percybolmer/tavern/services/tavern" | |
) | |
func main() { | |
products := productInventory() | |
// Create Order Service to use in tavern | |
os, err := order.NewOrderService( | |
order.WithMongoCustomerRepository("mongodb://localhost:27017"), | |
order.WithMemoryProductRepository(products), | |
) | |
if err != nil { | |
panic(err) | |
} | |
// Create tavern service | |
tavern, err := servicetavern.NewTavern( | |
servicetavern.WithOrderService(os)) | |
if err != nil { | |
panic(err) | |
} | |
uid, err := os.AddCustomer("Percy") | |
if err != nil { | |
panic(err) | |
} | |
order := []uuid.UUID{ | |
products[0].GetID(), | |
} | |
// Execute Order | |
err = tavern.Order(uid, order) | |
if err != nil { | |
panic(err) | |
} | |
} | |
func productInventory() []product.Product { | |
beer, err := product.NewProduct("Beer", "Healthy Beverage", 1.99) | |
if err != nil { | |
panic(err) | |
} | |
peenuts, err := product.NewProduct("Peenuts", "Healthy Snacks", 0.99) | |
if err != nil { | |
panic(err) | |
} | |
wine, err := product.NewProduct("Wine", "Healthy Snacks", 0.99) | |
if err != nil { | |
panic(err) | |
} | |
products := []product.Product{ | |
beer, peenuts, wine, | |
} | |
return products | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment