gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/repo/spanner/errors.go (about)

     1  package spanner
     2  
     3  import (
     4  	"cloud.google.com/go/spanner"
     5  	"google.golang.org/grpc/codes"
     6  
     7  	"gitlab.com/picnic-app/backend/role-api/internal/errors"
     8  )
     9  
    10  func fromError(err error) error {
    11  	if err == nil {
    12  		return nil
    13  	}
    14  
    15  	if _, ok := err.(errors.Error); ok {
    16  		return err
    17  	}
    18  
    19  	innerCode := spanner.ErrCode(err)
    20  	code := codes.Internal
    21  	switch innerCode {
    22  	case codes.NotFound:
    23  		fallthrough
    24  	case codes.AlreadyExists:
    25  		code = innerCode
    26  	}
    27  
    28  	return errors.NewWithError(code, "repo failed", err)
    29  }