65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
package grpc
|
|
|
|
import (
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/status"
|
|
"src.dualinventive.com/go/companies-service/internal/companies"
|
|
"src.dualinventive.com/go/companies-service/internal/domain"
|
|
)
|
|
|
|
func mapCompany(company *domain.Company) *Company {
|
|
return &Company{
|
|
CompanyID: uint64(company.ID),
|
|
CompanyCode: company.Code,
|
|
CompanyName: company.Name,
|
|
}
|
|
}
|
|
|
|
func mapCompanies(companies []domain.Company) []*Company {
|
|
if companies == nil {
|
|
return nil
|
|
}
|
|
|
|
companieslist := []*Company{}
|
|
|
|
for _, company := range companies {
|
|
companieslist = append(companieslist, &Company{
|
|
CompanyID: uint64(company.ID),
|
|
CompanyCode: company.Code,
|
|
CompanyName: company.Name,
|
|
})
|
|
}
|
|
|
|
return companieslist
|
|
}
|
|
|
|
func mapSortCol(sortcol GetCompaniesRequest_SortCol) domain.SortCol {
|
|
switch sortcol {
|
|
case GetCompaniesRequest_ID_ASC:
|
|
return domain.SortColIDAsc
|
|
case GetCompaniesRequest_ID_DESC:
|
|
return domain.SortColIDDesc
|
|
case GetCompaniesRequest_NAME_ASC:
|
|
return domain.SortColNameAsc
|
|
case GetCompaniesRequest_NAME_DESC:
|
|
return domain.SortColNameDesc
|
|
default:
|
|
return domain.SortColIDAsc
|
|
}
|
|
}
|
|
|
|
func mapError(err error) error {
|
|
switch err.(type) {
|
|
case *companies.ErrUnauthorized:
|
|
return status.Error(codes.Unauthenticated, err.Error())
|
|
case *companies.ErrAuthFailed:
|
|
return status.Error(codes.Internal, err.Error())
|
|
case *companies.ErrCompanyNotFound:
|
|
return status.Error(codes.NotFound, err.Error())
|
|
case *companies.ErrCompanyRepositoryErr:
|
|
return status.Error(codes.Internal, err.Error())
|
|
default:
|
|
return status.Error(codes.Internal, err.Error())
|
|
}
|
|
}
|