diff --git a/handlers/cage_handler.go b/handlers/cage_handler.go index 4cd04da..136dfcd 100644 --- a/handlers/cage_handler.go +++ b/handlers/cage_handler.go @@ -2,22 +2,22 @@ package handlers import "github.com/gin-gonic/gin" -func (hc *handlersContext) getAllCages(c *gin.Context){ +func (hc *handlersContext) getAllCages(c *gin.Context) { } -func (hc *handlersContext) getACage(c *gin.Context){ +func (hc *handlersContext) getACage(c *gin.Context) { } -func (hc *handlersContext) createACage(c *gin.Context){ +func (hc *handlersContext) createACage(c *gin.Context) { } -func (hc *handlersContext) updateACage(c *gin.Context){ +func (hc *handlersContext) updateACage(c *gin.Context) { } -func (hc *handlersContext) deleteACage(c *gin.Context){ +func (hc *handlersContext) deleteACage(c *gin.Context) { } diff --git a/handlers/game_handler.go b/handlers/game_handler.go index 5a71af5..eda7e24 100644 --- a/handlers/game_handler.go +++ b/handlers/game_handler.go @@ -2,26 +2,26 @@ package handlers import "github.com/gin-gonic/gin" -func (hc *handlersContext) getAllGames(c *gin.Context){ +func (hc *handlersContext) getAllGames(c *gin.Context) { } -func (hc *handlersContext) getAGame(c *gin.Context){ +func (hc *handlersContext) getAGame(c *gin.Context) { } -func (hc *handlersContext) createAGame(c *gin.Context){ +func (hc *handlersContext) createAGame(c *gin.Context) { } -func (hc *handlersContext) updateAGame(c *gin.Context){ +func (hc *handlersContext) updateAGame(c *gin.Context) { } -func (hc *handlersContext) deleteAGame(c *gin.Context){ +func (hc *handlersContext) deleteAGame(c *gin.Context) { } -func (hc *handlersContext) getHamstersOfGame(c *gin.Context){ +func (hc *handlersContext) getHamstersOfGame(c *gin.Context) { -} \ No newline at end of file +} diff --git a/handlers/hamster_handler.go b/handlers/hamster_handler.go index 831429d..9152015 100644 --- a/handlers/hamster_handler.go +++ b/handlers/hamster_handler.go @@ -2,22 +2,22 @@ package handlers import "github.com/gin-gonic/gin" -func (hc *handlersContext) getAllHamsters(c *gin.Context){ +func (hc *handlersContext) getAllHamsters(c *gin.Context) { } -func (hc *handlersContext) getAHamster(c *gin.Context){ +func (hc *handlersContext) getAHamster(c *gin.Context) { } -func (hc *handlersContext) createAHamster(c *gin.Context){ +func (hc *handlersContext) createAHamster(c *gin.Context) { } -func (hc *handlersContext) updateAHamster(c *gin.Context){ +func (hc *handlersContext) updateAHamster(c *gin.Context) { } -func (hc *handlersContext) deleteAHamster(c *gin.Context){ +func (hc *handlersContext) deleteAHamster(c *gin.Context) { } diff --git a/handlers/handler.go b/handlers/handler.go index c4675c2..5acc7ce 100755 --- a/handlers/handler.go +++ b/handlers/handler.go @@ -65,7 +65,7 @@ func NewRouter(config *Config) *gin.Engine { userRoute.Handle("LOGIN", "", hc.connectUser) userRoute.Handle(http.MethodPost, "", hc.createUser) - securedUserRoute := userRoute.Group("") + securedUserRoute := userRoute.Group("") //TODO add secure auth securedUserRoute.Handle(http.MethodGet, "", hc.getAllUsers) securedUserRoute.Handle(http.MethodGet, "/:userId", hc.getUser) @@ -77,19 +77,19 @@ func NewRouter(config *Config) *gin.Engine { gameRoute.Handle(http.MethodGet, "", hc.getAllGames) gameRoute.Handle(http.MethodGet, "/:gameId", hc.getAGame) gameRoute.Handle(http.MethodPost, "/:gameId", hc.createAGame) - gameRoute.Handle(http.MethodPut, "/:gameId",hc.updateAGame) - gameRoute.Handle(http.MethodGet, "/:gameId/hamsters",hc.getHamstersOfGame) - gameRoute.Handle(http.MethodDelete, "/:gameId",hc.deleteAGame) + gameRoute.Handle(http.MethodPut, "/:gameId", hc.updateAGame) + gameRoute.Handle(http.MethodGet, "/:gameId/hamsters", hc.getHamstersOfGame) + gameRoute.Handle(http.MethodDelete, "/:gameId", hc.deleteAGame) cageRoute := gameRoute.Group("/:gameId/cages") - cageRoute.Handle(http.MethodGet, "",hc.getAllCages) + cageRoute.Handle(http.MethodGet, "", hc.getAllCages) cageRoute.Handle(http.MethodGet, "/:cageId", hc.getACage) cageRoute.Handle(http.MethodPost, "/:cageId", hc.createACage) cageRoute.Handle(http.MethodPut, "/:cageId", hc.updateACage) - cageRoute.Handle(http.MethodDelete, "/:cageId",hc.deleteACage) + cageRoute.Handle(http.MethodDelete, "/:cageId", hc.deleteACage) hamsterRoute := cageRoute.Group("/:cageId/hamsters") - hamsterRoute.Handle(http.MethodGet, "",hc.getAllHamsters) + hamsterRoute.Handle(http.MethodGet, "", hc.getAllHamsters) hamsterRoute.Handle(http.MethodGet, "/:hamsterId", hc.getAHamster) hamsterRoute.Handle(http.MethodPost, "/:hamsterId", hc.createAHamster) hamsterRoute.Handle(http.MethodPut, "/:hamsterId", hc.updateAHamster) diff --git a/service/cage_service.go b/service/cage_service.go new file mode 100644 index 0000000..9a3058b --- /dev/null +++ b/service/cage_service.go @@ -0,0 +1,11 @@ +package service + +import "hamster-tycoon/storage/dao" + +type CageService struct { + serviceContext +} + +func NewCageService(database dao.Database) *CageService { + return &CageService{serviceContext{db: database}} +} diff --git a/service/game_service.go b/service/game_service.go new file mode 100644 index 0000000..cfff629 --- /dev/null +++ b/service/game_service.go @@ -0,0 +1,11 @@ +package service + +import "Game-tycoon/storage/dao" + +type GameService struct { + serviceContext +} + +func NewGameService(database dao.Database) *GameService { + return &GameService{serviceContext{db: database}} +} diff --git a/service/hamster_service.go b/service/hamster_service.go new file mode 100644 index 0000000..1e9899b --- /dev/null +++ b/service/hamster_service.go @@ -0,0 +1,11 @@ +package service + +import "hamster-tycoon/storage/dao" + +type HamsterService struct { + serviceContext +} + +func NewHamsterService(database dao.Database) *HamsterService { + return &HamsterService{serviceContext{db: database}} +} diff --git a/storage/dao/database.go b/storage/dao/database.go index cfb28f6..5f901f6 100755 --- a/storage/dao/database.go +++ b/storage/dao/database.go @@ -15,4 +15,12 @@ type Database interface { UpdateUser(*model.User) error // end: user dao funcs + // start: cage games funcs + GetAllGames() ([]*model.Game, error) + GetGameById(string) (*model.Game, error) + CreateGame(*model.Game) error + DeleteGame(string) error + UpdateGame(*model.Game) error + // end: games dao funcs + } diff --git a/storage/dao/fake/database_postgresql_cages.go b/storage/dao/fake/database_postgresql_cages.go new file mode 100755 index 0000000..b665306 --- /dev/null +++ b/storage/dao/fake/database_postgresql_cages.go @@ -0,0 +1 @@ +package fake diff --git a/storage/dao/fake/database_postgresql_games.go b/storage/dao/fake/database_postgresql_games.go new file mode 100755 index 0000000..b665306 --- /dev/null +++ b/storage/dao/fake/database_postgresql_games.go @@ -0,0 +1 @@ +package fake diff --git a/storage/dao/fake/database_postgresql_hamsters.go b/storage/dao/fake/database_postgresql_hamsters.go new file mode 100755 index 0000000..b665306 --- /dev/null +++ b/storage/dao/fake/database_postgresql_hamsters.go @@ -0,0 +1 @@ +package fake diff --git a/storage/dao/postgresql/database_postgresql_cages.go b/storage/dao/postgresql/database_postgresql_cages.go new file mode 100755 index 0000000..4e9a54a --- /dev/null +++ b/storage/dao/postgresql/database_postgresql_cages.go @@ -0,0 +1 @@ +package postgresql diff --git a/storage/dao/postgresql/database_postgresql_games.go b/storage/dao/postgresql/database_postgresql_games.go new file mode 100755 index 0000000..4e9a54a --- /dev/null +++ b/storage/dao/postgresql/database_postgresql_games.go @@ -0,0 +1 @@ +package postgresql diff --git a/storage/dao/postgresql/database_postgresql_hamsters.go b/storage/dao/postgresql/database_postgresql_hamsters.go new file mode 100755 index 0000000..4e9a54a --- /dev/null +++ b/storage/dao/postgresql/database_postgresql_hamsters.go @@ -0,0 +1 @@ +package postgresql diff --git a/hamster_tycoon/cage.go b/storage/model/cage.go similarity index 65% rename from hamster_tycoon/cage.go rename to storage/model/cage.go index 6b66310..c1618d4 100644 --- a/hamster_tycoon/cage.go +++ b/storage/model/cage.go @@ -1,4 +1,4 @@ -package hamster_tycoon +package model type Cage struct { Hamsters []*Hamster diff --git a/hamster_tycoon/game.go b/storage/model/game.go similarity index 55% rename from hamster_tycoon/game.go rename to storage/model/game.go index d7c5f99..8155846 100644 --- a/hamster_tycoon/game.go +++ b/storage/model/game.go @@ -1,6 +1,8 @@ -package hamster_tycoon +package model type Game struct { + ID string + server Server Cages []*Cage SelledHamster []*Hamster } diff --git a/hamster_tycoon/hamster.go b/storage/model/hamster.go similarity index 96% rename from hamster_tycoon/hamster.go rename to storage/model/hamster.go index 17b0168..1d919e9 100644 --- a/hamster_tycoon/hamster.go +++ b/storage/model/hamster.go @@ -1,8 +1,9 @@ -package hamster_tycoon +package model import ( "errors" "fmt" + uuid "github.com/satori/go.uuid" "hamster-tycoon/randomizer" ) @@ -29,6 +30,7 @@ const ( var GlobalHamsterNumber = 1 type Hamster struct { + ID string Name string Number int Sexe string @@ -113,6 +115,7 @@ func Born(father *Hamster, mother *Hamster) ([]*Hamster, error) { child := make([]*Hamster, numberOfChild) for i := 0; i < numberOfChild; i++ { child[i] = &Hamster{ + ID: uuid.NewV4().String(), Name: fmt.Sprintf("Hamster %d", GlobalHamsterNumber), Number: GlobalHamsterNumber, Age: 1, diff --git a/hamster_tycoon/hamster_test.go b/storage/model/hamster_test.go similarity index 99% rename from hamster_tycoon/hamster_test.go rename to storage/model/hamster_test.go index 2a47c87..6ba0998 100644 --- a/hamster_tycoon/hamster_test.go +++ b/storage/model/hamster_test.go @@ -1,4 +1,4 @@ -package hamster_tycoon +package model import ( "errors" diff --git a/storage/model/server.go b/storage/model/server.go new file mode 100644 index 0000000..ac472b9 --- /dev/null +++ b/storage/model/server.go @@ -0,0 +1,5 @@ +package model + +type Server struct { + ID string +} diff --git a/storage/model/user.go b/storage/model/user.go index 78942b2..3fb2ec6 100755 --- a/storage/model/user.go +++ b/storage/model/user.go @@ -1,6 +1,8 @@ package model -import "time" +import ( + "time" +) type User struct { UserEditable @@ -8,6 +10,7 @@ type User struct { CreatedAt time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` GoogleId string `json:"-"` + Games []Game } type UserEditable struct {