src.dualinventive.com/go/companies-service/grpc/mappings.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())
}
}