github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/features/profiles/domain/contexters/contexters.go (about)

     1  package contexters
     2  
     3  import (
     4  	likeable_contexters "github.com/k0marov/go-socnet/core/abstract/ownable_likeable/contexters"
     5  	"github.com/k0marov/go-socnet/core/general/core_err"
     6  	"github.com/k0marov/go-socnet/core/general/core_values"
     7  
     8  	"github.com/k0marov/go-socnet/features/profiles/domain/entities"
     9  )
    10  
    11  type ProfileContextAdder func(profile entities.Profile, caller core_values.UserId) (entities.ContextedProfile, error)
    12  
    13  func NewProfileContextAdder(getContext likeable_contexters.OwnLikeContextGetter) ProfileContextAdder {
    14  	return func(profile entities.Profile, caller core_values.UserId) (entities.ContextedProfile, error) {
    15  		context, err := getContext(profile.Id, profile.Id, caller)
    16  		if err != nil {
    17  			return entities.ContextedProfile{}, core_err.Rethrow("getting context for profile", err)
    18  		}
    19  		contextedProfile := entities.ContextedProfile{
    20  			Profile:        profile,
    21  			OwnLikeContext: context,
    22  		}
    23  		return contextedProfile, nil
    24  	}
    25  }