first commit
This commit is contained in:
19
internal/test/adapters/http.go
Normal file
19
internal/test/adapters/http.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package adapters
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
|
||||
var (
|
||||
router *fiber.Router = nil
|
||||
)
|
||||
|
||||
func RegisterRouter(r *fiber.Router) {
|
||||
router = r
|
||||
if router == nil {
|
||||
panic("router is nil")
|
||||
}
|
||||
(*router).Get("/test", test)
|
||||
}
|
||||
|
||||
func test(c *fiber.Ctx) error {
|
||||
return c.SendString("test")
|
||||
}
|
||||
31
internal/test/db/generated/db.go
Normal file
31
internal/test/db/generated/db.go
Normal file
@@ -0,0 +1,31 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.28.0
|
||||
|
||||
package test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type DBTX interface {
|
||||
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
|
||||
PrepareContext(context.Context, string) (*sql.Stmt, error)
|
||||
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
|
||||
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
|
||||
}
|
||||
|
||||
func New(db DBTX) *Queries {
|
||||
return &Queries{db: db}
|
||||
}
|
||||
|
||||
type Queries struct {
|
||||
db DBTX
|
||||
}
|
||||
|
||||
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
|
||||
return &Queries{
|
||||
db: tx,
|
||||
}
|
||||
}
|
||||
10
internal/test/db/generated/models.go
Normal file
10
internal/test/db/generated/models.go
Normal file
@@ -0,0 +1,10 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.28.0
|
||||
|
||||
package test
|
||||
|
||||
type Test struct {
|
||||
ID int32
|
||||
Data string
|
||||
}
|
||||
55
internal/test/db/generated/queries.sql.go
Normal file
55
internal/test/db/generated/queries.sql.go
Normal file
@@ -0,0 +1,55 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.28.0
|
||||
// source: queries.sql
|
||||
|
||||
package test
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
const createTest = `-- name: CreateTest :one
|
||||
INSERT INTO test (data) VALUES ($1) RETURNING id
|
||||
`
|
||||
|
||||
func (q *Queries) CreateTest(ctx context.Context, data string) (int32, error) {
|
||||
row := q.db.QueryRowContext(ctx, createTest, data)
|
||||
var id int32
|
||||
err := row.Scan(&id)
|
||||
return id, err
|
||||
}
|
||||
|
||||
const deleteTest = `-- name: DeleteTest :exec
|
||||
DELETE FROM test WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteTest(ctx context.Context, id int32) error {
|
||||
_, err := q.db.ExecContext(ctx, deleteTest, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const getTest = `-- name: GetTest :one
|
||||
SELECT id, data FROM test WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetTest(ctx context.Context, id int32) (Test, error) {
|
||||
row := q.db.QueryRowContext(ctx, getTest, id)
|
||||
var i Test
|
||||
err := row.Scan(&i.ID, &i.Data)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const updateTest = `-- name: UpdateTest :exec
|
||||
UPDATE test SET data = $1 WHERE id = $2
|
||||
`
|
||||
|
||||
type UpdateTestParams struct {
|
||||
Data string
|
||||
ID int32
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateTest(ctx context.Context, arg UpdateTestParams) error {
|
||||
_, err := q.db.ExecContext(ctx, updateTest, arg.Data, arg.ID)
|
||||
return err
|
||||
}
|
||||
11
internal/test/db/queries.sql
Normal file
11
internal/test/db/queries.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- name: CreateTest :one
|
||||
INSERT INTO test (data) VALUES ($1) RETURNING id;
|
||||
|
||||
-- name: GetTest :one
|
||||
SELECT id, data FROM test WHERE id = $1;
|
||||
|
||||
-- name: UpdateTest :exec
|
||||
UPDATE test SET data = $1 WHERE id = $2;
|
||||
|
||||
-- name: DeleteTest :exec
|
||||
DELETE FROM test WHERE id = $1;
|
||||
42
internal/test/repository.go
Normal file
42
internal/test/repository.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
generated "Sipro-Marketplaces/internal/test/db/generated"
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
Create(ctx context.Context, data string) (int32, error)
|
||||
Get(ctx context.Context, id int32) (generated.Test, error)
|
||||
Update(ctx context.Context, id int32, data string) error
|
||||
Delete(ctx context.Context, id int32) error
|
||||
}
|
||||
|
||||
type repository struct {
|
||||
db *sql.DB
|
||||
queries *generated.Queries
|
||||
}
|
||||
|
||||
func NewRepository(db *sql.DB) Repository {
|
||||
return &repository{
|
||||
db: db,
|
||||
queries: generated.New(db),
|
||||
}
|
||||
}
|
||||
|
||||
func (r *repository) Create(ctx context.Context, data string) (int32, error) {
|
||||
return r.queries.CreateTest(ctx, data)
|
||||
}
|
||||
|
||||
func (r *repository) Get(ctx context.Context, id int32) (generated.Test, error) {
|
||||
return r.queries.GetTest(ctx, id)
|
||||
}
|
||||
|
||||
func (r *repository) Update(ctx context.Context, id int32, data string) error {
|
||||
return r.queries.UpdateTest(ctx, generated.UpdateTestParams{Data: data, ID: id})
|
||||
}
|
||||
|
||||
func (r *repository) Delete(ctx context.Context, id int32) error {
|
||||
return r.queries.DeleteTest(ctx, id)
|
||||
}
|
||||
37
internal/test/service.go
Normal file
37
internal/test/service.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
generated "Sipro-Marketplaces/internal/test/db/generated"
|
||||
"context"
|
||||
)
|
||||
|
||||
type Service interface {
|
||||
Create(ctx context.Context, data string) (int32, error)
|
||||
Get(ctx context.Context, id int32) (generated.Test, error)
|
||||
Update(ctx context.Context, id int32, data string) error
|
||||
Delete(ctx context.Context, id int32) error
|
||||
}
|
||||
|
||||
type service struct {
|
||||
repo Repository
|
||||
}
|
||||
|
||||
func NewService(repo Repository) Service {
|
||||
return &service{repo: repo}
|
||||
}
|
||||
|
||||
func (s *service) Create(ctx context.Context, data string) (int32, error) {
|
||||
return s.repo.Create(ctx, data)
|
||||
}
|
||||
|
||||
func (s *service) Get(ctx context.Context, id int32) (generated.Test, error) {
|
||||
return s.repo.Get(ctx, id)
|
||||
}
|
||||
|
||||
func (s *service) Update(ctx context.Context, id int32, data string) error {
|
||||
return s.repo.Update(ctx, id, data)
|
||||
}
|
||||
|
||||
func (s *service) Delete(ctx context.Context, id int32) error {
|
||||
return s.repo.Delete(ctx, id)
|
||||
}
|
||||
Reference in New Issue
Block a user