github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/abstract/ownable/service/service.go (about)

     1  package service
     2  
     3  import (
     4  	"github.com/k0marov/go-socnet/core/general/client_errors"
     5  	"github.com/k0marov/go-socnet/core/general/core_err"
     6  	"github.com/k0marov/go-socnet/core/general/core_values"
     7  )
     8  
     9  type StoreOwnerGetter func(targetId string) (core_values.UserId, error)
    10  
    11  type OwnerGetter func(targetId string) (core_values.UserId, error)
    12  
    13  func NewOwnerGetter(getOwner StoreOwnerGetter) OwnerGetter {
    14  	return func(target string) (core_values.UserId, error) {
    15  		owner, err := getOwner(target)
    16  		if err == core_err.ErrNotFound {
    17  			return "", client_errors.NotFound
    18  		}
    19  		if err != nil {
    20  			return "", core_err.Rethrow("getting owner from store", err)
    21  		}
    22  		return owner, nil
    23  	}
    24  }