niki/productapp/service/product/service.go

39 lines
832 B
Go

package product
import (
"context"
"fmt"
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
)
type Repository interface {
GetProducts(ctx context.Context, page, pageSize uint) ([]Product, error)
}
type Service struct {
repository Repository
}
func New(repo Repository) Service {
return Service{
repository: repo,
}
}
func (s Service) GetProducts(ctx context.Context, req GetProductListRequest) (GetProductListResponse, error) {
page := req.GetPageNumber()
pageSize := req.PageSize
products, err := s.repository.GetProducts(ctx, page, pageSize)
if err != nil {
fmt.Println(err)
return GetProductListResponse{}, errmsg.ErrorResponse{
Message: ErrFailedGetProductList.Error(),
Errors: map[string]interface{}{"repository_error": err.Error()},
}
}
return GetProductListResponse{Data: products}, nil
}