first commit

This commit is contained in:
2025-04-13 20:27:20 +03:00
commit b20847c998
21 changed files with 1327 additions and 0 deletions

View 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")
}

View 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,
}
}

View 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
}

View 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
}

View 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;

View 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
View 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)
}