merge upstream main
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"entgo.io/ent/dialect/sql"
|
||||
"entgo.io/ent/dialect/sql/sqlgraph"
|
||||
"entgo.io/ent/schema/field"
|
||||
"github.com/Wei-Shaw/sub2api/ent/announcementread"
|
||||
"github.com/Wei-Shaw/sub2api/ent/apikey"
|
||||
"github.com/Wei-Shaw/sub2api/ent/group"
|
||||
"github.com/Wei-Shaw/sub2api/ent/predicate"
|
||||
@@ -36,6 +37,7 @@ type UserQuery struct {
|
||||
withRedeemCodes *RedeemCodeQuery
|
||||
withSubscriptions *UserSubscriptionQuery
|
||||
withAssignedSubscriptions *UserSubscriptionQuery
|
||||
withAnnouncementReads *AnnouncementReadQuery
|
||||
withAllowedGroups *GroupQuery
|
||||
withUsageLogs *UsageLogQuery
|
||||
withAttributeValues *UserAttributeValueQuery
|
||||
@@ -166,6 +168,28 @@ func (_q *UserQuery) QueryAssignedSubscriptions() *UserSubscriptionQuery {
|
||||
return query
|
||||
}
|
||||
|
||||
// QueryAnnouncementReads chains the current query on the "announcement_reads" edge.
|
||||
func (_q *UserQuery) QueryAnnouncementReads() *AnnouncementReadQuery {
|
||||
query := (&AnnouncementReadClient{config: _q.config}).Query()
|
||||
query.path = func(ctx context.Context) (fromU *sql.Selector, err error) {
|
||||
if err := _q.prepareQuery(ctx); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selector := _q.sqlQuery(ctx)
|
||||
if err := selector.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
step := sqlgraph.NewStep(
|
||||
sqlgraph.From(user.Table, user.FieldID, selector),
|
||||
sqlgraph.To(announcementread.Table, announcementread.FieldID),
|
||||
sqlgraph.Edge(sqlgraph.O2M, false, user.AnnouncementReadsTable, user.AnnouncementReadsColumn),
|
||||
)
|
||||
fromU = sqlgraph.SetNeighbors(_q.driver.Dialect(), step)
|
||||
return fromU, nil
|
||||
}
|
||||
return query
|
||||
}
|
||||
|
||||
// QueryAllowedGroups chains the current query on the "allowed_groups" edge.
|
||||
func (_q *UserQuery) QueryAllowedGroups() *GroupQuery {
|
||||
query := (&GroupClient{config: _q.config}).Query()
|
||||
@@ -472,6 +496,7 @@ func (_q *UserQuery) Clone() *UserQuery {
|
||||
withRedeemCodes: _q.withRedeemCodes.Clone(),
|
||||
withSubscriptions: _q.withSubscriptions.Clone(),
|
||||
withAssignedSubscriptions: _q.withAssignedSubscriptions.Clone(),
|
||||
withAnnouncementReads: _q.withAnnouncementReads.Clone(),
|
||||
withAllowedGroups: _q.withAllowedGroups.Clone(),
|
||||
withUsageLogs: _q.withUsageLogs.Clone(),
|
||||
withAttributeValues: _q.withAttributeValues.Clone(),
|
||||
@@ -527,6 +552,17 @@ func (_q *UserQuery) WithAssignedSubscriptions(opts ...func(*UserSubscriptionQue
|
||||
return _q
|
||||
}
|
||||
|
||||
// WithAnnouncementReads tells the query-builder to eager-load the nodes that are connected to
|
||||
// the "announcement_reads" edge. The optional arguments are used to configure the query builder of the edge.
|
||||
func (_q *UserQuery) WithAnnouncementReads(opts ...func(*AnnouncementReadQuery)) *UserQuery {
|
||||
query := (&AnnouncementReadClient{config: _q.config}).Query()
|
||||
for _, opt := range opts {
|
||||
opt(query)
|
||||
}
|
||||
_q.withAnnouncementReads = query
|
||||
return _q
|
||||
}
|
||||
|
||||
// WithAllowedGroups tells the query-builder to eager-load the nodes that are connected to
|
||||
// the "allowed_groups" edge. The optional arguments are used to configure the query builder of the edge.
|
||||
func (_q *UserQuery) WithAllowedGroups(opts ...func(*GroupQuery)) *UserQuery {
|
||||
@@ -660,11 +696,12 @@ func (_q *UserQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*User, e
|
||||
var (
|
||||
nodes = []*User{}
|
||||
_spec = _q.querySpec()
|
||||
loadedTypes = [9]bool{
|
||||
loadedTypes = [10]bool{
|
||||
_q.withAPIKeys != nil,
|
||||
_q.withRedeemCodes != nil,
|
||||
_q.withSubscriptions != nil,
|
||||
_q.withAssignedSubscriptions != nil,
|
||||
_q.withAnnouncementReads != nil,
|
||||
_q.withAllowedGroups != nil,
|
||||
_q.withUsageLogs != nil,
|
||||
_q.withAttributeValues != nil,
|
||||
@@ -723,6 +760,13 @@ func (_q *UserQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*User, e
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if query := _q.withAnnouncementReads; query != nil {
|
||||
if err := _q.loadAnnouncementReads(ctx, query, nodes,
|
||||
func(n *User) { n.Edges.AnnouncementReads = []*AnnouncementRead{} },
|
||||
func(n *User, e *AnnouncementRead) { n.Edges.AnnouncementReads = append(n.Edges.AnnouncementReads, e) }); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if query := _q.withAllowedGroups; query != nil {
|
||||
if err := _q.loadAllowedGroups(ctx, query, nodes,
|
||||
func(n *User) { n.Edges.AllowedGroups = []*Group{} },
|
||||
@@ -887,6 +931,36 @@ func (_q *UserQuery) loadAssignedSubscriptions(ctx context.Context, query *UserS
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (_q *UserQuery) loadAnnouncementReads(ctx context.Context, query *AnnouncementReadQuery, nodes []*User, init func(*User), assign func(*User, *AnnouncementRead)) error {
|
||||
fks := make([]driver.Value, 0, len(nodes))
|
||||
nodeids := make(map[int64]*User)
|
||||
for i := range nodes {
|
||||
fks = append(fks, nodes[i].ID)
|
||||
nodeids[nodes[i].ID] = nodes[i]
|
||||
if init != nil {
|
||||
init(nodes[i])
|
||||
}
|
||||
}
|
||||
if len(query.ctx.Fields) > 0 {
|
||||
query.ctx.AppendFieldOnce(announcementread.FieldUserID)
|
||||
}
|
||||
query.Where(predicate.AnnouncementRead(func(s *sql.Selector) {
|
||||
s.Where(sql.InValues(s.C(user.AnnouncementReadsColumn), fks...))
|
||||
}))
|
||||
neighbors, err := query.All(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, n := range neighbors {
|
||||
fk := n.UserID
|
||||
node, ok := nodeids[fk]
|
||||
if !ok {
|
||||
return fmt.Errorf(`unexpected referenced foreign-key "user_id" returned %v for node %v`, fk, n.ID)
|
||||
}
|
||||
assign(node, n)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (_q *UserQuery) loadAllowedGroups(ctx context.Context, query *GroupQuery, nodes []*User, init func(*User), assign func(*User, *Group)) error {
|
||||
edgeIDs := make([]driver.Value, len(nodes))
|
||||
byID := make(map[int64]*User)
|
||||
|
||||
Reference in New Issue
Block a user