github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/abstract/ownable_likeable/contexters/contexters.go (about) 1 package contexters 2 3 import ( 4 "github.com/k0marov/go-socnet/core/abstract/likeable" 5 "github.com/k0marov/go-socnet/core/general/core_err" 6 "github.com/k0marov/go-socnet/core/general/core_values" 7 ) 8 9 type OwnLikeContext struct { 10 IsLiked bool 11 IsMine bool 12 } 13 14 type OwnLikeContextGetter func(target string, owner, caller core_values.UserId) (OwnLikeContext, error) 15 16 func NewOwnLikeContextGetter(checkLiked likeable.LikeChecker) OwnLikeContextGetter { 17 return func(target string, owner, caller core_values.UserId) (OwnLikeContext, error) { 18 isLiked, err := checkLiked(target, caller) 19 if err != nil { 20 return OwnLikeContext{}, core_err.Rethrow("checking if target is liked", err) 21 } 22 return OwnLikeContext{ 23 IsLiked: isLiked, 24 IsMine: caller == owner, 25 }, nil 26 } 27 }