github.com/RevenueMonster/sqlike@v1.0.6/sqlike/context.go (about) 1 package sqlike 2 3 import ( 4 "context" 5 6 "github.com/RevenueMonster/sqlike/sqlike/primitive" 7 ) 8 9 const contextResolutionKey = "_sqlike_context_query" 10 11 func (tb *Database) InjectResolution(ctx context.Context, queries ...primitive.Group) context.Context { 12 query := extractResolution(ctx) 13 query = append(query, queries...) 14 return context.WithValue(ctx, contextResolutionKey, query) 15 } 16 17 func (tb *Table) InjectResolution(ctx context.Context, queries ...primitive.Group) context.Context { 18 query := extractResolution(ctx) 19 query = append(query, queries...) 20 return context.WithValue(ctx, contextResolutionKey, query) 21 } 22 23 func extractResolution(ctx context.Context) []primitive.Group { 24 iQuery := ctx.Value(contextResolutionKey) 25 query, ok := iQuery.([]primitive.Group) 26 if ok { 27 return query 28 } 29 return []primitive.Group{} 30 }