Moved infra from internal/ to src/ dir

This commit is contained in:
PB
2025-10-23 08:03:29 +02:00
parent 1ef015cd05
commit 956fd3ee84
12 changed files with 8 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"time"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
)

View File

@@ -1,10 +0,0 @@
package repository
import entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
type RepositoryInterface interface {
FindByID(id string) (*entity.User, error)
Create(user *entity.User) (*entity.User, error)
Update(user *entity.User) (*entity.User, error)
Delete(id int64) (bool, error)
}

View File

@@ -1,64 +0,0 @@
package repository
import (
"context"
"errors"
entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
"github.com/jackc/pgx/v5/pgxpool"
)
type RoleRepository struct {
db *pgxpool.Pool
}
func NewRoleRepository(db *pgxpool.Pool) *RoleRepository {
return &RoleRepository{db}
}
func (r *RoleRepository) FindByID(id string) (*entity.Role, error) {
var role entity.Role
sql := `SELECT id, name, display_name FROM identity.roles WHERE id=$1 LIMIT 1`
err := r.db.QueryRow(context.Background(), sql, id).
Scan(&role.ID, &role.Name, &role.DisplayName)
if err != nil {
return nil, errors.New("failed to fetch role from DB: " + err.Error())
}
return &role, nil
}
func (r *RoleRepository) Create(role *entity.Role) (string, error) {
var id string
// sql := `INSERT INTO identity.users(email, username, password) VALUES($1, $2, $3) LIMIT 1 RETURNING id`
// err := r.db.QueryRow(context.Background(), sql, user.Email, user.Username, user.Password).Scan(&id)
// if err != nil {
// if err = db.IsDuplicatedRow(err); err != nil {
// return "", errors.New("username/email is already taken")
// }
// return "", errors.New("db error: " + err.Error())
// }
return id, nil
}
func (r *RoleRepository) Update(role *entity.Role) (*entity.Role, error) {
return &entity.Role{}, nil
}
func (r *RoleRepository) Delete(id int64) (bool, error) {
return true, nil
}
func (r *RoleRepository) GetUserRole(user *entity.User) *entity.Role {
role := new(entity.Role)
sql := `SELECT r.id, r.name, r.display_name FROM identity.roles r JOIN identity.users_roles ur ON r.id = ur.role_id WHERE ur.user_id=$1 LIMIT 1`
r.db.QueryRow(context.Background(), sql, user.ID).Scan(&role.ID, &role.Name, &role.DisplayName)
return role
}

View File

@@ -1,101 +0,0 @@
package repository
import (
"context"
"errors"
"fmt"
entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
"git.ego.freeddns.org/egommerce/go-api-pkg/database"
"github.com/jackc/pgx/v5/pgxpool"
)
type URLAccessRepository struct {
db *pgxpool.Pool
}
func NewURLAccessRepository(db *pgxpool.Pool) *URLAccessRepository {
return &URLAccessRepository{db}
}
func (r *URLAccessRepository) FindByID(id string) (*entity.URLAccess, error) {
var urlAccess entity.URLAccess
sql := `SELECT id, roles, url, service FROM identity.url_access WHERE id=$1 LIMIT 1`
err := r.db.QueryRow(context.Background(), sql, id).
Scan(&urlAccess.ID, &urlAccess.Roles, &urlAccess.URL, &urlAccess.Service)
if err != nil {
return nil, errors.New("failed to fetch url_access from DB: " + err.Error())
}
return &urlAccess, nil
}
func (r *URLAccessRepository) FindAll() ([]entity.URLAccess, error) {
sql := "SELECT id, roles, url, service FROM identity.url_access ORDER BY service"
rows, err := r.db.Query(context.Background(), sql)
if err != nil {
return nil, err
}
defer rows.Close()
var results []entity.URLAccess
for rows.Next() {
var url entity.URLAccess
if err := rows.Scan(&url.ID, &url.Roles, &url.URL, &url.Service); err != nil {
return nil, err
}
results = append(results, url)
}
return results, nil
}
func (r *URLAccessRepository) Create(role *entity.URLAccess) (string, error) {
var id string
return id, nil
}
func (r *URLAccessRepository) Update(role *entity.URLAccess) (entity.URLAccess, error) {
return entity.URLAccess{}, nil
}
func (r *URLAccessRepository) Delete(id int64) (bool, error) {
return true, nil
}
func (r *URLAccessRepository) FindByURLAndService(url, service string) (*entity.URLAccess, error) {
var urlAccess entity.URLAccess
sql := `SELECT id, roles, url FROM identity.url_access WHERE url=$1 AND service=$2 LIMIT 1`
err := r.db.QueryRow(context.Background(), sql, url, service).
Scan(&urlAccess.ID, &urlAccess.Roles, &urlAccess.URL)
if err != nil {
return nil, errors.New("failed to fetch url_access from DB: " + err.Error())
}
return &urlAccess, nil
}
func (r *URLAccessRepository) FindByURLAndServiceForRole(url, service, role string) (*entity.URLAccess, error) {
var entity entity.URLAccess
sql := fmt.Sprintf("SELECT id, roles, url, service FROM identity.url_access WHERE url=$1 AND service=$2 AND roles::jsonb @> '[\"%s\"]'::jsonb LIMIT 1", role)
err := r.db.QueryRow(context.Background(), sql, url, service).
Scan(&entity.ID, &entity.Roles, &entity.URL, &entity.Service)
if err != nil {
if err = database.NoRowsInQuerySet(err); err != nil {
return nil, errors.New("no url found for: " + url + " and role: " + role)
}
return nil, errors.New("failed to fetch url_access from DB: " + err.Error())
}
return &entity, nil
}
func (r *URLAccessRepository) FindForUser(user *entity.User) {
}

View File

@@ -1,69 +0,0 @@
package repository
import (
"context"
"errors"
entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
db "git.ego.freeddns.org/egommerce/go-api-pkg/database"
"github.com/jackc/pgx/v5/pgxpool"
)
type UserRepository struct {
db *pgxpool.Pool
}
func NewUserRepository(db *pgxpool.Pool) *UserRepository {
return &UserRepository{db}
}
func (r *UserRepository) FindByID(id string) (*entity.User, error) {
var user entity.User
sql := `SELECT id, username, password, email, created_at FROM identity.users WHERE id=$1 LIMIT 1`
err := r.db.QueryRow(context.Background(), sql, id).
Scan(&user.ID, &user.Username, &user.Password, &user.Email, &user.CreatedAt)
if err != nil {
return nil, errors.New("failed to fetch user from DB: " + err.Error())
}
return &user, nil
}
func (r *UserRepository) Create(user *entity.User) (string, error) {
var id string
sql := `INSERT INTO identity.users(email, username, password) VALUES($1, $2, $3) LIMIT 1 RETURNING id`
err := r.db.QueryRow(context.Background(), sql, user.Email, user.Username, user.Password).Scan(&id)
if err != nil {
if err = db.IsDuplicatedRow(err); err != nil {
return "", errors.New("username/email is already taken")
}
return "", errors.New("db error: " + err.Error())
}
return id, nil
}
func (r *UserRepository) Update(user *entity.User) (*entity.User, error) {
return &entity.User{}, nil
}
func (r *UserRepository) Delete(id int64) (bool, error) {
return true, nil
}
func (r *UserRepository) FindByUsername(login string) (*entity.User, error) {
var user entity.User
sql := `SELECT id, username, password, email, created_at FROM identity.users WHERE username=$1 LIMIT 1`
err := r.db.QueryRow(context.Background(), sql, login).
Scan(&user.ID, &user.Username, &user.Password, &user.Email, &user.CreatedAt)
if err != nil {
return nil, errors.New("failed to fetch user from DB: " + err.Error())
}
return &user, nil
}

View File

@@ -2,7 +2,7 @@ package server
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
"git.ego.freeddns.org/egommerce/identity-service/internal/ui"
"github.com/gofiber/fiber/v2"

View File

@@ -2,7 +2,7 @@ package server
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
"git.ego.freeddns.org/egommerce/identity-service/internal/ui"

View File

@@ -2,7 +2,7 @@ package server
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
"git.ego.freeddns.org/egommerce/identity-service/internal/ui"

View File

@@ -2,7 +2,7 @@ package server
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/ui"
"github.com/gofiber/fiber/v2"

View File

@@ -9,7 +9,7 @@ import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"github.com/go-redis/redis/v8"
)

View File

@@ -9,7 +9,7 @@ import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
entity "git.ego.freeddns.org/egommerce/api-entities/identity/entity"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"github.com/go-redis/redis/v8"
)

View File

@@ -2,7 +2,7 @@ package ui
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
"git.ego.freeddns.org/egommerce/identity-service/internal/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/infra/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
"github.com/go-redis/redis/v8"