71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
package grpc
|
|
|
|
import (
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/status"
|
|
"src.dualinventive.com/go/assets-service/internal/assets"
|
|
"src.dualinventive.com/go/assets-service/internal/domain"
|
|
)
|
|
|
|
func mapAsset(asset *domain.Asset) *Asset {
|
|
return &Asset{
|
|
AssetID: uint64(asset.ID),
|
|
AssetUID: asset.UID,
|
|
AssetTypeCode: asset.TypeCode,
|
|
AssetSerialNr: asset.SerialNr,
|
|
}
|
|
}
|
|
func mapAssets(assets []domain.Asset) []*Asset {
|
|
if assets == nil {
|
|
return nil
|
|
}
|
|
|
|
assetslist := []*Asset{}
|
|
|
|
for _, asset := range assets {
|
|
assetslist = append(assetslist, &Asset{
|
|
AssetID: uint64(asset.ID),
|
|
AssetUID: asset.UID,
|
|
AssetTypeCode: asset.TypeCode,
|
|
AssetSerialNr: asset.SerialNr,
|
|
})
|
|
|
|
}
|
|
|
|
return assetslist
|
|
}
|
|
|
|
func mapSortCol(sortcol GetAssetsRequest_SortCol) domain.SortCol {
|
|
switch sortcol {
|
|
case GetAssetsRequest_ID_ASC:
|
|
return domain.SortColIDAsc
|
|
case GetAssetsRequest_ID_DESC:
|
|
return domain.SortColIDDesc
|
|
case GetAssetsRequest_UID_ASC:
|
|
return domain.SortColUIDAsc
|
|
case GetAssetsRequest_UID_DESC:
|
|
return domain.SortColUIDDesc
|
|
case GetAssetsRequest_SERIALNR_ASC:
|
|
return domain.SortColSerialNrAsc
|
|
case GetAssetsRequest_SERIALNR_DESC:
|
|
return domain.SortColSerialNrDesc
|
|
default:
|
|
return domain.SortColIDAsc
|
|
}
|
|
}
|
|
|
|
func mapError(err error) error {
|
|
switch err.(type) {
|
|
case *assets.ErrUnauthorized:
|
|
return status.Error(codes.Unauthenticated, err.Error())
|
|
case *assets.ErrAuthFailed:
|
|
return status.Error(codes.Internal, err.Error())
|
|
case *assets.ErrAssetNotFound:
|
|
return status.Error(codes.NotFound, err.Error())
|
|
case *assets.ErrAssetRepositoryErr:
|
|
return status.Error(codes.Internal, err.Error())
|
|
default:
|
|
return status.Error(codes.Internal, err.Error())
|
|
}
|
|
}
|