init project
This commit is contained in:
23
internal/repositories/interfaces.go
Normal file
23
internal/repositories/interfaces.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package repositories
|
||||
|
||||
import "github.com/dungnt11/senflow_app/internal/models"
|
||||
|
||||
// IUserRepository định nghĩa interface cho UserRepository
|
||||
type IUserRepository interface {
|
||||
Create(user *models.User) error
|
||||
FindByID(id uint) (*models.User, error)
|
||||
FindByEmail(email string) (*models.User, error)
|
||||
Update(user *models.User) error
|
||||
Delete(id uint) error
|
||||
}
|
||||
|
||||
// IProductRepository định nghĩa interface cho ProductRepository
|
||||
type IProductRepository interface {
|
||||
Create(product *models.Product) error
|
||||
FindByID(id uint) (*models.Product, error)
|
||||
FindAll() ([]*models.Product, error)
|
||||
Update(product *models.Product) error
|
||||
Delete(id uint) error
|
||||
}
|
||||
|
||||
// Các interface khác có thể được thêm vào đây khi cần thiết
|
53
internal/repositories/product_repository.go
Normal file
53
internal/repositories/product_repository.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"github.com/dungnt11/senflow_app/internal/models"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// ProductRepository triển khai IProductRepository
|
||||
type ProductRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
// NewProductRepository tạo một instance mới của ProductRepository
|
||||
func NewProductRepository(db *gorm.DB) *ProductRepository {
|
||||
return &ProductRepository{
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
// Create tạo một sản phẩm mới
|
||||
func (r *ProductRepository) Create(product *models.Product) error {
|
||||
return r.db.Create(product).Error
|
||||
}
|
||||
|
||||
// FindByID tìm sản phẩm theo ID
|
||||
func (r *ProductRepository) FindByID(id uint) (*models.Product, error) {
|
||||
var product models.Product
|
||||
err := r.db.First(&product, id).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &product, nil
|
||||
}
|
||||
|
||||
// FindAll lấy tất cả sản phẩm
|
||||
func (r *ProductRepository) FindAll() ([]*models.Product, error) {
|
||||
var products []*models.Product
|
||||
err := r.db.Find(&products).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return products, nil
|
||||
}
|
||||
|
||||
// Update cập nhật thông tin sản phẩm
|
||||
func (r *ProductRepository) Update(product *models.Product) error {
|
||||
return r.db.Save(product).Error
|
||||
}
|
||||
|
||||
// Delete xóa sản phẩm theo ID
|
||||
func (r *ProductRepository) Delete(id uint) error {
|
||||
return r.db.Delete(&models.Product{}, id).Error
|
||||
}
|
53
internal/repositories/user_repository.go
Normal file
53
internal/repositories/user_repository.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"github.com/dungnt11/senflow_app/internal/models"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// UserRepository triển khai IUserRepository
|
||||
type UserRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
// NewUserRepository tạo một instance mới của UserRepository
|
||||
func NewUserRepository(db *gorm.DB) *UserRepository {
|
||||
return &UserRepository{
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
||||
// Create tạo một user mới trong database
|
||||
func (ur *UserRepository) Create(user *models.User) error {
|
||||
return ur.db.Create(user).Error
|
||||
}
|
||||
|
||||
// FindByID tìm user theo ID
|
||||
func (ur *UserRepository) FindByID(id uint) (*models.User, error) {
|
||||
var user models.User
|
||||
err := ur.db.First(&user, id).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
// FindByEmail tìm user theo email
|
||||
func (ur *UserRepository) FindByEmail(email string) (*models.User, error) {
|
||||
var user models.User
|
||||
err := ur.db.Where("email = ?", email).First(&user).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
// Update cập nhật thông tin user
|
||||
func (ur *UserRepository) Update(user *models.User) error {
|
||||
return ur.db.Save(user).Error
|
||||
}
|
||||
|
||||
// Delete xóa user theo ID
|
||||
func (ur *UserRepository) Delete(id uint) error {
|
||||
return ur.db.Delete(&models.User{}, id).Error
|
||||
}
|
Reference in New Issue
Block a user