From 9c1e8d17a9a865c315ee80c7a929dd8ce16a89c5 Mon Sep 17 00:00:00 2001 From: Arun Kutty Date: Tue, 12 Jan 2021 08:18:28 +0530 Subject: [PATCH] Committed an optimised structure --- internal/database/postgres/init.go | 21 ++++++++++++++ .../petstore/repo/{postgres => }/breed.go | 2 +- .../petstore/repo/{postgres => }/category.go | 28 ++++++++++--------- .../petstore/repo/{postgres => }/location.go | 2 +- internal/petstore/repo/{postgres => }/pet.go | 2 +- internal/petstore/repo/postgres/init.go | 20 ------------- internal/petstore/rest/breed.go | 4 +-- internal/petstore/rest/category.go | 4 +-- internal/petstore/rest/pet.go | 4 +-- internal/petstore/service/breed.go | 6 ++-- internal/petstore/service/category.go | 6 ++-- internal/petstore/service/pet.go | 6 ++-- 12 files changed, 54 insertions(+), 51 deletions(-) create mode 100644 internal/database/postgres/init.go rename internal/petstore/repo/{postgres => }/breed.go (96%) rename internal/petstore/repo/{postgres => }/category.go (64%) rename internal/petstore/repo/{postgres => }/location.go (96%) rename internal/petstore/repo/{postgres => }/pet.go (96%) delete mode 100644 internal/petstore/repo/postgres/init.go diff --git a/internal/database/postgres/init.go b/internal/database/postgres/init.go new file mode 100644 index 0000000..40f6e0b --- /dev/null +++ b/internal/database/postgres/init.go @@ -0,0 +1,21 @@ +package postgres + +import ( + "database/sql" + "fmt" +) + +var ( + DbClient *sql.DB +) + +func init() { + var err error + connectionString := "user=database dbname=database password= host=localhost sslmode=disable" + DbClient, err = sql.Open("database", connectionString) + if err != nil { + panic(err) + } + defer DbClient.Close() + fmt.Printf("\nSuccessfully connected to database!\n") +} diff --git a/internal/petstore/repo/postgres/breed.go b/internal/petstore/repo/breed.go similarity index 96% rename from internal/petstore/repo/postgres/breed.go rename to internal/petstore/repo/breed.go index 272f089..852d17e 100644 --- a/internal/petstore/repo/postgres/breed.go +++ b/internal/petstore/repo/breed.go @@ -1,4 +1,4 @@ -package postgres +package repo import ( "fmt" diff --git a/internal/petstore/repo/postgres/category.go b/internal/petstore/repo/category.go similarity index 64% rename from internal/petstore/repo/postgres/category.go rename to internal/petstore/repo/category.go index c172bb3..b4e8e3b 100644 --- a/internal/petstore/repo/postgres/category.go +++ b/internal/petstore/repo/category.go @@ -1,6 +1,7 @@ -package postgres +package repo import ( + client "petstore/internal/database/postgres" "petstore/pkg/models" ) @@ -22,18 +23,19 @@ func (c *Category) GetAllCategory() ([]*models.Category, error) { //CreateCategory create a Category func (c *Category) CreateCategory() error { - // stmt, err := dbClient.Prepare("INSERT INTO public.category (category_name) VALUES(?);") - // if err != nil { - // return err - // } - // //closing the statement to prevent memory leaks - // defer stmt.Close() - - // _, err = stmt.Exec(c.CategoryName) - - // if err != nil { - // return err - // } + + stmt, err := client.DbClient.Prepare("INSERT INTO public.category (category_name) VALUES(?);") + if err != nil { + return err + } + //closing the statement to prevent memory leaks + defer stmt.Close() + + _, err = stmt.Exec(c.CategoryName) + + if err != nil { + return err + } return nil } diff --git a/internal/petstore/repo/postgres/location.go b/internal/petstore/repo/location.go similarity index 96% rename from internal/petstore/repo/postgres/location.go rename to internal/petstore/repo/location.go index ee8d6f9..c849d79 100644 --- a/internal/petstore/repo/postgres/location.go +++ b/internal/petstore/repo/location.go @@ -1,4 +1,4 @@ -package postgres +package repo import ( "petstore/pkg/models" diff --git a/internal/petstore/repo/postgres/pet.go b/internal/petstore/repo/pet.go similarity index 96% rename from internal/petstore/repo/postgres/pet.go rename to internal/petstore/repo/pet.go index 34b50f8..7a43fd5 100644 --- a/internal/petstore/repo/postgres/pet.go +++ b/internal/petstore/repo/pet.go @@ -1,4 +1,4 @@ -package postgres +package repo import ( "petstore/pkg/models" diff --git a/internal/petstore/repo/postgres/init.go b/internal/petstore/repo/postgres/init.go deleted file mode 100644 index 51d4e16..0000000 --- a/internal/petstore/repo/postgres/init.go +++ /dev/null @@ -1,20 +0,0 @@ -package postgres - -import ( - "database/sql" -) - -var ( - dbClient *sql.DB -) - -// func init() { -// var err error -// connectionString := "user=postgres dbname=postgres password= host=localhost sslmode=disable" -// dbClient, err = sql.Open("postgres", connectionString) -// if err != nil { -// panic(err) -// } -// defer dbClient.Close() -// fmt.Printf("\nSuccessfully connected to database!\n") -// } diff --git a/internal/petstore/rest/breed.go b/internal/petstore/rest/breed.go index a8ac1f5..4fea80a 100644 --- a/internal/petstore/rest/breed.go +++ b/internal/petstore/rest/breed.go @@ -3,7 +3,7 @@ package rest import ( "fmt" "net/http" - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/internal/petstore/service" "github.com/labstack/echo/v4" @@ -12,7 +12,7 @@ import ( //CreateBreed route for POST func CreateBreed(c echo.Context) error { fmt.Println("Creating Breed") - b := db.Breed{ID: 1, BreedName: "abc"} + b := repo.Breed{ID: 1, BreedName: "abc"} service.CreateBreed(&b) return c.String(http.StatusCreated, "Categories created successfully") } diff --git a/internal/petstore/rest/category.go b/internal/petstore/rest/category.go index 578ab1a..4d196d7 100644 --- a/internal/petstore/rest/category.go +++ b/internal/petstore/rest/category.go @@ -3,7 +3,7 @@ package rest import ( "fmt" "net/http" - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/internal/petstore/service" "github.com/labstack/echo/v4" @@ -12,7 +12,7 @@ import ( //CreateCategory route for POST func CreateCategory(c echo.Context) error { fmt.Println("Creating Breed") - b := db.Category{ID: 1, CategoryName: "abc"} + b := repo.Category{ID: 1, CategoryName: "abc"} service.CreateCategory(&b) return c.String(http.StatusCreated, "Categories created successfully") } diff --git a/internal/petstore/rest/pet.go b/internal/petstore/rest/pet.go index 6f5ef43..a53477d 100644 --- a/internal/petstore/rest/pet.go +++ b/internal/petstore/rest/pet.go @@ -3,7 +3,7 @@ package rest import ( "fmt" "net/http" - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/internal/petstore/service" "github.com/labstack/echo/v4" @@ -12,7 +12,7 @@ import ( //CreatePet route for POST func CreatePet(c echo.Context) error { fmt.Println("Creating Breed") - b := db.Pet{ID: 1, Name: "abc"} + b := repo.Pet{ID: 1, Name: "abc"} service.CreatePet(&b) return c.String(http.StatusCreated, "Categories created successfully") } diff --git a/internal/petstore/service/breed.go b/internal/petstore/service/breed.go index cae8c42..2240427 100644 --- a/internal/petstore/service/breed.go +++ b/internal/petstore/service/breed.go @@ -2,15 +2,15 @@ package service import ( "fmt" - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/pkg/models" ) var err error -var bs db.BreedService +var bs repo.BreedService //CreateBreed create a breed -func CreateBreed(b *db.Breed) error { +func CreateBreed(b *repo.Breed) error { fmt.Println("In service") bs = b err = bs.CreateBreed() diff --git a/internal/petstore/service/category.go b/internal/petstore/service/category.go index 2341556..c8c0675 100644 --- a/internal/petstore/service/category.go +++ b/internal/petstore/service/category.go @@ -1,14 +1,14 @@ package service import ( - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/pkg/models" ) -var cs db.CategoryService +var cs repo.CategoryService //CreateCategory create a breed -func CreateCategory(c *db.Category) error { +func CreateCategory(c *repo.Category) error { cs = c err = cs.CreateCategory() if err != nil { diff --git a/internal/petstore/service/pet.go b/internal/petstore/service/pet.go index 307bdc3..7dd2ec8 100644 --- a/internal/petstore/service/pet.go +++ b/internal/petstore/service/pet.go @@ -2,14 +2,14 @@ package service import ( "fmt" - db "petstore/internal/petstore/repo/postgres" + "petstore/internal/petstore/repo" "petstore/pkg/models" ) -var ps db.PetService +var ps repo.PetService //CreatePet create a Pet -func CreatePet(p *db.Pet) error { +func CreatePet(p *repo.Pet) error { fmt.Println("In service") ps = p err = ps.CreatePet()