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()) } }