Problem:
Upstream channels can reject monitor probes based on client fingerprint
(e.g. "only Claude Code clients allowed"). The monitor had no way to
customize the outgoing request to bypass such restrictions.
Solution:
Introduce reusable request templates that carry extra_headers plus an
optional body override; monitors reference a template and receive a
snapshot copy on apply. Template edits do NOT auto-propagate — users
must click "apply to associated monitors" to refresh snapshots, so a
bad template edit cannot instantly break all production monitors.
Data model (migration 112):
- channel_monitor_request_templates: id, name, provider, description,
extra_headers jsonb, body_override_mode ('off'|'merge'|'replace'),
body_override jsonb. Unique (provider, name).
- channel_monitors: +template_id (FK, ON DELETE SET NULL), +extra_headers,
+body_override_mode, +body_override (the three runtime snapshot fields).
Checker (channel_monitor_checker.go):
- callProvider + runCheckForModel accept a CheckOptions carrying the
snapshot fields. mergeHeaders applies user headers on top of adapter
defaults (forbidden list: Host / Content-Length / Transfer-Encoding /
Connection / Content-Encoding).
- buildRequestBody:
off -> adapter default body
merge -> shallow-merge over default; per-provider deny list
(model/messages/contents) protects the challenge contract
replace -> user body verbatim
- Replace mode skips challenge validation; instead HTTP 2xx + non-empty
extracted response text = operational, empty = failed.
- 4 new unit tests cover all three modes + replace/empty-response case.
Admin API:
- /admin/channel-monitor-templates CRUD + /:id/apply (overwrite snapshot
on all template_id=id monitors, returns affected count).
- channel_monitor request/response DTOs gain the 4 new fields.
Frontend:
- channelMonitorTemplate.ts API client.
- MonitorAdvancedRequestConfig.vue shared component for headers textarea
+ body mode radio + body JSON editor; used by both template and monitor
forms.
- MonitorTemplateManagerDialog.vue: provider tabs, list/create/edit/
delete/apply, live "associated monitors" count per row.
- MonitorFiltersBar: new 模板管理 button next to 新增监控.
- MonitorFormDialog: collapsible 高级 section with template dropdown
(filtered by form.provider, clears on provider change) + embedded
AdvancedRequestConfig. Picking a template copies its fields into the
form (snapshot semantics mirrored on the client).
- i18n zh/en entries for all new copy.
chore: bump version to 0.1.114.32
1140 lines
48 KiB
Go
1140 lines
48 KiB
Go
// Code generated by ent, DO NOT EDIT.
|
|
|
|
package intercept
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"entgo.io/ent/dialect/sql"
|
|
"github.com/Wei-Shaw/sub2api/ent"
|
|
"github.com/Wei-Shaw/sub2api/ent/account"
|
|
"github.com/Wei-Shaw/sub2api/ent/accountgroup"
|
|
"github.com/Wei-Shaw/sub2api/ent/announcement"
|
|
"github.com/Wei-Shaw/sub2api/ent/announcementread"
|
|
"github.com/Wei-Shaw/sub2api/ent/apikey"
|
|
"github.com/Wei-Shaw/sub2api/ent/authidentity"
|
|
"github.com/Wei-Shaw/sub2api/ent/authidentitychannel"
|
|
"github.com/Wei-Shaw/sub2api/ent/channelmonitor"
|
|
"github.com/Wei-Shaw/sub2api/ent/channelmonitordailyrollup"
|
|
"github.com/Wei-Shaw/sub2api/ent/channelmonitorhistory"
|
|
"github.com/Wei-Shaw/sub2api/ent/channelmonitorrequesttemplate"
|
|
"github.com/Wei-Shaw/sub2api/ent/errorpassthroughrule"
|
|
"github.com/Wei-Shaw/sub2api/ent/group"
|
|
"github.com/Wei-Shaw/sub2api/ent/idempotencyrecord"
|
|
"github.com/Wei-Shaw/sub2api/ent/identityadoptiondecision"
|
|
"github.com/Wei-Shaw/sub2api/ent/paymentauditlog"
|
|
"github.com/Wei-Shaw/sub2api/ent/paymentorder"
|
|
"github.com/Wei-Shaw/sub2api/ent/paymentproviderinstance"
|
|
"github.com/Wei-Shaw/sub2api/ent/pendingauthsession"
|
|
"github.com/Wei-Shaw/sub2api/ent/predicate"
|
|
"github.com/Wei-Shaw/sub2api/ent/promocode"
|
|
"github.com/Wei-Shaw/sub2api/ent/promocodeusage"
|
|
"github.com/Wei-Shaw/sub2api/ent/proxy"
|
|
"github.com/Wei-Shaw/sub2api/ent/redeemcode"
|
|
"github.com/Wei-Shaw/sub2api/ent/securitysecret"
|
|
"github.com/Wei-Shaw/sub2api/ent/setting"
|
|
"github.com/Wei-Shaw/sub2api/ent/subscriptionplan"
|
|
"github.com/Wei-Shaw/sub2api/ent/tlsfingerprintprofile"
|
|
"github.com/Wei-Shaw/sub2api/ent/usagecleanuptask"
|
|
"github.com/Wei-Shaw/sub2api/ent/usagelog"
|
|
"github.com/Wei-Shaw/sub2api/ent/user"
|
|
"github.com/Wei-Shaw/sub2api/ent/userallowedgroup"
|
|
"github.com/Wei-Shaw/sub2api/ent/userattributedefinition"
|
|
"github.com/Wei-Shaw/sub2api/ent/userattributevalue"
|
|
"github.com/Wei-Shaw/sub2api/ent/usersubscription"
|
|
)
|
|
|
|
// The Query interface represents an operation that queries a graph.
|
|
// By using this interface, users can write generic code that manipulates
|
|
// query builders of different types.
|
|
type Query interface {
|
|
// Type returns the string representation of the query type.
|
|
Type() string
|
|
// Limit the number of records to be returned by this query.
|
|
Limit(int)
|
|
// Offset to start from.
|
|
Offset(int)
|
|
// Unique configures the query builder to filter duplicate records.
|
|
Unique(bool)
|
|
// Order specifies how the records should be ordered.
|
|
Order(...func(*sql.Selector))
|
|
// WhereP appends storage-level predicates to the query builder. Using this method, users
|
|
// can use type-assertion to append predicates that do not depend on any generated package.
|
|
WhereP(...func(*sql.Selector))
|
|
}
|
|
|
|
// The Func type is an adapter that allows ordinary functions to be used as interceptors.
|
|
// Unlike traversal functions, interceptors are skipped during graph traversals. Note that the
|
|
// implementation of Func is different from the one defined in entgo.io/ent.InterceptFunc.
|
|
type Func func(context.Context, Query) error
|
|
|
|
// Intercept calls f(ctx, q) and then applied the next Querier.
|
|
func (f Func) Intercept(next ent.Querier) ent.Querier {
|
|
return ent.QuerierFunc(func(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
query, err := NewQuery(q)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if err := f(ctx, query); err != nil {
|
|
return nil, err
|
|
}
|
|
return next.Query(ctx, q)
|
|
})
|
|
}
|
|
|
|
// The TraverseFunc type is an adapter to allow the use of ordinary function as Traverser.
|
|
// If f is a function with the appropriate signature, TraverseFunc(f) is a Traverser that calls f.
|
|
type TraverseFunc func(context.Context, Query) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseFunc) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseFunc) Traverse(ctx context.Context, q ent.Query) error {
|
|
query, err := NewQuery(q)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return f(ctx, query)
|
|
}
|
|
|
|
// The APIKeyFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type APIKeyFunc func(context.Context, *ent.APIKeyQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f APIKeyFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.APIKeyQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.APIKeyQuery", q)
|
|
}
|
|
|
|
// The TraverseAPIKey type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAPIKey func(context.Context, *ent.APIKeyQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAPIKey) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAPIKey) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.APIKeyQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.APIKeyQuery", q)
|
|
}
|
|
|
|
// The AccountFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AccountFunc func(context.Context, *ent.AccountQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AccountFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AccountQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AccountQuery", q)
|
|
}
|
|
|
|
// The TraverseAccount type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAccount func(context.Context, *ent.AccountQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAccount) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAccount) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AccountQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AccountQuery", q)
|
|
}
|
|
|
|
// The AccountGroupFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AccountGroupFunc func(context.Context, *ent.AccountGroupQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AccountGroupFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AccountGroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AccountGroupQuery", q)
|
|
}
|
|
|
|
// The TraverseAccountGroup type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAccountGroup func(context.Context, *ent.AccountGroupQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAccountGroup) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAccountGroup) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AccountGroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AccountGroupQuery", q)
|
|
}
|
|
|
|
// The AnnouncementFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AnnouncementFunc func(context.Context, *ent.AnnouncementQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AnnouncementFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AnnouncementQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AnnouncementQuery", q)
|
|
}
|
|
|
|
// The TraverseAnnouncement type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAnnouncement func(context.Context, *ent.AnnouncementQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAnnouncement) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAnnouncement) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AnnouncementQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AnnouncementQuery", q)
|
|
}
|
|
|
|
// The AnnouncementReadFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AnnouncementReadFunc func(context.Context, *ent.AnnouncementReadQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AnnouncementReadFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AnnouncementReadQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AnnouncementReadQuery", q)
|
|
}
|
|
|
|
// The TraverseAnnouncementRead type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAnnouncementRead func(context.Context, *ent.AnnouncementReadQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAnnouncementRead) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAnnouncementRead) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AnnouncementReadQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AnnouncementReadQuery", q)
|
|
}
|
|
|
|
// The AuthIdentityFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AuthIdentityFunc func(context.Context, *ent.AuthIdentityQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AuthIdentityFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AuthIdentityQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AuthIdentityQuery", q)
|
|
}
|
|
|
|
// The TraverseAuthIdentity type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAuthIdentity func(context.Context, *ent.AuthIdentityQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAuthIdentity) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAuthIdentity) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AuthIdentityQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AuthIdentityQuery", q)
|
|
}
|
|
|
|
// The AuthIdentityChannelFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type AuthIdentityChannelFunc func(context.Context, *ent.AuthIdentityChannelQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f AuthIdentityChannelFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.AuthIdentityChannelQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.AuthIdentityChannelQuery", q)
|
|
}
|
|
|
|
// The TraverseAuthIdentityChannel type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseAuthIdentityChannel func(context.Context, *ent.AuthIdentityChannelQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseAuthIdentityChannel) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseAuthIdentityChannel) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.AuthIdentityChannelQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.AuthIdentityChannelQuery", q)
|
|
}
|
|
|
|
// The ChannelMonitorFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ChannelMonitorFunc func(context.Context, *ent.ChannelMonitorQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ChannelMonitorFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ChannelMonitorQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorQuery", q)
|
|
}
|
|
|
|
// The TraverseChannelMonitor type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseChannelMonitor func(context.Context, *ent.ChannelMonitorQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseChannelMonitor) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseChannelMonitor) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ChannelMonitorQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorQuery", q)
|
|
}
|
|
|
|
// The ChannelMonitorDailyRollupFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ChannelMonitorDailyRollupFunc func(context.Context, *ent.ChannelMonitorDailyRollupQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ChannelMonitorDailyRollupFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ChannelMonitorDailyRollupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorDailyRollupQuery", q)
|
|
}
|
|
|
|
// The TraverseChannelMonitorDailyRollup type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseChannelMonitorDailyRollup func(context.Context, *ent.ChannelMonitorDailyRollupQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseChannelMonitorDailyRollup) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseChannelMonitorDailyRollup) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ChannelMonitorDailyRollupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorDailyRollupQuery", q)
|
|
}
|
|
|
|
// The ChannelMonitorHistoryFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ChannelMonitorHistoryFunc func(context.Context, *ent.ChannelMonitorHistoryQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ChannelMonitorHistoryFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ChannelMonitorHistoryQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorHistoryQuery", q)
|
|
}
|
|
|
|
// The TraverseChannelMonitorHistory type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseChannelMonitorHistory func(context.Context, *ent.ChannelMonitorHistoryQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseChannelMonitorHistory) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseChannelMonitorHistory) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ChannelMonitorHistoryQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorHistoryQuery", q)
|
|
}
|
|
|
|
// The ChannelMonitorRequestTemplateFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ChannelMonitorRequestTemplateFunc func(context.Context, *ent.ChannelMonitorRequestTemplateQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ChannelMonitorRequestTemplateFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ChannelMonitorRequestTemplateQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorRequestTemplateQuery", q)
|
|
}
|
|
|
|
// The TraverseChannelMonitorRequestTemplate type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseChannelMonitorRequestTemplate func(context.Context, *ent.ChannelMonitorRequestTemplateQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseChannelMonitorRequestTemplate) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseChannelMonitorRequestTemplate) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ChannelMonitorRequestTemplateQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ChannelMonitorRequestTemplateQuery", q)
|
|
}
|
|
|
|
// The ErrorPassthroughRuleFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ErrorPassthroughRuleFunc func(context.Context, *ent.ErrorPassthroughRuleQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ErrorPassthroughRuleFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ErrorPassthroughRuleQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ErrorPassthroughRuleQuery", q)
|
|
}
|
|
|
|
// The TraverseErrorPassthroughRule type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseErrorPassthroughRule func(context.Context, *ent.ErrorPassthroughRuleQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseErrorPassthroughRule) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseErrorPassthroughRule) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ErrorPassthroughRuleQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ErrorPassthroughRuleQuery", q)
|
|
}
|
|
|
|
// The GroupFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type GroupFunc func(context.Context, *ent.GroupQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f GroupFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.GroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.GroupQuery", q)
|
|
}
|
|
|
|
// The TraverseGroup type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseGroup func(context.Context, *ent.GroupQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseGroup) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseGroup) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.GroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.GroupQuery", q)
|
|
}
|
|
|
|
// The IdempotencyRecordFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type IdempotencyRecordFunc func(context.Context, *ent.IdempotencyRecordQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f IdempotencyRecordFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.IdempotencyRecordQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.IdempotencyRecordQuery", q)
|
|
}
|
|
|
|
// The TraverseIdempotencyRecord type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseIdempotencyRecord func(context.Context, *ent.IdempotencyRecordQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseIdempotencyRecord) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseIdempotencyRecord) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.IdempotencyRecordQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.IdempotencyRecordQuery", q)
|
|
}
|
|
|
|
// The IdentityAdoptionDecisionFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type IdentityAdoptionDecisionFunc func(context.Context, *ent.IdentityAdoptionDecisionQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f IdentityAdoptionDecisionFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.IdentityAdoptionDecisionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.IdentityAdoptionDecisionQuery", q)
|
|
}
|
|
|
|
// The TraverseIdentityAdoptionDecision type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseIdentityAdoptionDecision func(context.Context, *ent.IdentityAdoptionDecisionQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseIdentityAdoptionDecision) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseIdentityAdoptionDecision) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.IdentityAdoptionDecisionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.IdentityAdoptionDecisionQuery", q)
|
|
}
|
|
|
|
// The PaymentAuditLogFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PaymentAuditLogFunc func(context.Context, *ent.PaymentAuditLogQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PaymentAuditLogFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PaymentAuditLogQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PaymentAuditLogQuery", q)
|
|
}
|
|
|
|
// The TraversePaymentAuditLog type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePaymentAuditLog func(context.Context, *ent.PaymentAuditLogQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePaymentAuditLog) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePaymentAuditLog) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PaymentAuditLogQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PaymentAuditLogQuery", q)
|
|
}
|
|
|
|
// The PaymentOrderFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PaymentOrderFunc func(context.Context, *ent.PaymentOrderQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PaymentOrderFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PaymentOrderQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PaymentOrderQuery", q)
|
|
}
|
|
|
|
// The TraversePaymentOrder type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePaymentOrder func(context.Context, *ent.PaymentOrderQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePaymentOrder) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePaymentOrder) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PaymentOrderQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PaymentOrderQuery", q)
|
|
}
|
|
|
|
// The PaymentProviderInstanceFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PaymentProviderInstanceFunc func(context.Context, *ent.PaymentProviderInstanceQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PaymentProviderInstanceFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PaymentProviderInstanceQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PaymentProviderInstanceQuery", q)
|
|
}
|
|
|
|
// The TraversePaymentProviderInstance type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePaymentProviderInstance func(context.Context, *ent.PaymentProviderInstanceQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePaymentProviderInstance) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePaymentProviderInstance) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PaymentProviderInstanceQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PaymentProviderInstanceQuery", q)
|
|
}
|
|
|
|
// The PendingAuthSessionFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PendingAuthSessionFunc func(context.Context, *ent.PendingAuthSessionQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PendingAuthSessionFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PendingAuthSessionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PendingAuthSessionQuery", q)
|
|
}
|
|
|
|
// The TraversePendingAuthSession type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePendingAuthSession func(context.Context, *ent.PendingAuthSessionQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePendingAuthSession) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePendingAuthSession) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PendingAuthSessionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PendingAuthSessionQuery", q)
|
|
}
|
|
|
|
// The PromoCodeFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PromoCodeFunc func(context.Context, *ent.PromoCodeQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PromoCodeFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PromoCodeQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PromoCodeQuery", q)
|
|
}
|
|
|
|
// The TraversePromoCode type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePromoCode func(context.Context, *ent.PromoCodeQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePromoCode) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePromoCode) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PromoCodeQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PromoCodeQuery", q)
|
|
}
|
|
|
|
// The PromoCodeUsageFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type PromoCodeUsageFunc func(context.Context, *ent.PromoCodeUsageQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f PromoCodeUsageFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.PromoCodeUsageQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.PromoCodeUsageQuery", q)
|
|
}
|
|
|
|
// The TraversePromoCodeUsage type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraversePromoCodeUsage func(context.Context, *ent.PromoCodeUsageQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraversePromoCodeUsage) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraversePromoCodeUsage) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.PromoCodeUsageQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.PromoCodeUsageQuery", q)
|
|
}
|
|
|
|
// The ProxyFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type ProxyFunc func(context.Context, *ent.ProxyQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f ProxyFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.ProxyQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.ProxyQuery", q)
|
|
}
|
|
|
|
// The TraverseProxy type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseProxy func(context.Context, *ent.ProxyQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseProxy) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseProxy) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.ProxyQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.ProxyQuery", q)
|
|
}
|
|
|
|
// The RedeemCodeFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type RedeemCodeFunc func(context.Context, *ent.RedeemCodeQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f RedeemCodeFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.RedeemCodeQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.RedeemCodeQuery", q)
|
|
}
|
|
|
|
// The TraverseRedeemCode type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseRedeemCode func(context.Context, *ent.RedeemCodeQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseRedeemCode) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseRedeemCode) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.RedeemCodeQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.RedeemCodeQuery", q)
|
|
}
|
|
|
|
// The SecuritySecretFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type SecuritySecretFunc func(context.Context, *ent.SecuritySecretQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f SecuritySecretFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.SecuritySecretQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.SecuritySecretQuery", q)
|
|
}
|
|
|
|
// The TraverseSecuritySecret type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseSecuritySecret func(context.Context, *ent.SecuritySecretQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseSecuritySecret) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseSecuritySecret) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.SecuritySecretQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.SecuritySecretQuery", q)
|
|
}
|
|
|
|
// The SettingFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type SettingFunc func(context.Context, *ent.SettingQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f SettingFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.SettingQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.SettingQuery", q)
|
|
}
|
|
|
|
// The TraverseSetting type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseSetting func(context.Context, *ent.SettingQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseSetting) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseSetting) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.SettingQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.SettingQuery", q)
|
|
}
|
|
|
|
// The SubscriptionPlanFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type SubscriptionPlanFunc func(context.Context, *ent.SubscriptionPlanQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f SubscriptionPlanFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.SubscriptionPlanQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.SubscriptionPlanQuery", q)
|
|
}
|
|
|
|
// The TraverseSubscriptionPlan type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseSubscriptionPlan func(context.Context, *ent.SubscriptionPlanQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseSubscriptionPlan) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseSubscriptionPlan) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.SubscriptionPlanQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.SubscriptionPlanQuery", q)
|
|
}
|
|
|
|
// The TLSFingerprintProfileFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type TLSFingerprintProfileFunc func(context.Context, *ent.TLSFingerprintProfileQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f TLSFingerprintProfileFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.TLSFingerprintProfileQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.TLSFingerprintProfileQuery", q)
|
|
}
|
|
|
|
// The TraverseTLSFingerprintProfile type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseTLSFingerprintProfile func(context.Context, *ent.TLSFingerprintProfileQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseTLSFingerprintProfile) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseTLSFingerprintProfile) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.TLSFingerprintProfileQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.TLSFingerprintProfileQuery", q)
|
|
}
|
|
|
|
// The UsageCleanupTaskFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UsageCleanupTaskFunc func(context.Context, *ent.UsageCleanupTaskQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UsageCleanupTaskFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UsageCleanupTaskQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UsageCleanupTaskQuery", q)
|
|
}
|
|
|
|
// The TraverseUsageCleanupTask type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUsageCleanupTask func(context.Context, *ent.UsageCleanupTaskQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUsageCleanupTask) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUsageCleanupTask) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UsageCleanupTaskQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UsageCleanupTaskQuery", q)
|
|
}
|
|
|
|
// The UsageLogFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UsageLogFunc func(context.Context, *ent.UsageLogQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UsageLogFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UsageLogQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UsageLogQuery", q)
|
|
}
|
|
|
|
// The TraverseUsageLog type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUsageLog func(context.Context, *ent.UsageLogQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUsageLog) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUsageLog) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UsageLogQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UsageLogQuery", q)
|
|
}
|
|
|
|
// The UserFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UserFunc func(context.Context, *ent.UserQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UserFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UserQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UserQuery", q)
|
|
}
|
|
|
|
// The TraverseUser type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUser func(context.Context, *ent.UserQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUser) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUser) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UserQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UserQuery", q)
|
|
}
|
|
|
|
// The UserAllowedGroupFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UserAllowedGroupFunc func(context.Context, *ent.UserAllowedGroupQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UserAllowedGroupFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UserAllowedGroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UserAllowedGroupQuery", q)
|
|
}
|
|
|
|
// The TraverseUserAllowedGroup type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUserAllowedGroup func(context.Context, *ent.UserAllowedGroupQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUserAllowedGroup) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUserAllowedGroup) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UserAllowedGroupQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UserAllowedGroupQuery", q)
|
|
}
|
|
|
|
// The UserAttributeDefinitionFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UserAttributeDefinitionFunc func(context.Context, *ent.UserAttributeDefinitionQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UserAttributeDefinitionFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UserAttributeDefinitionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UserAttributeDefinitionQuery", q)
|
|
}
|
|
|
|
// The TraverseUserAttributeDefinition type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUserAttributeDefinition func(context.Context, *ent.UserAttributeDefinitionQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUserAttributeDefinition) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUserAttributeDefinition) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UserAttributeDefinitionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UserAttributeDefinitionQuery", q)
|
|
}
|
|
|
|
// The UserAttributeValueFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UserAttributeValueFunc func(context.Context, *ent.UserAttributeValueQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UserAttributeValueFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UserAttributeValueQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UserAttributeValueQuery", q)
|
|
}
|
|
|
|
// The TraverseUserAttributeValue type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUserAttributeValue func(context.Context, *ent.UserAttributeValueQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUserAttributeValue) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUserAttributeValue) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UserAttributeValueQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UserAttributeValueQuery", q)
|
|
}
|
|
|
|
// The UserSubscriptionFunc type is an adapter to allow the use of ordinary function as a Querier.
|
|
type UserSubscriptionFunc func(context.Context, *ent.UserSubscriptionQuery) (ent.Value, error)
|
|
|
|
// Query calls f(ctx, q).
|
|
func (f UserSubscriptionFunc) Query(ctx context.Context, q ent.Query) (ent.Value, error) {
|
|
if q, ok := q.(*ent.UserSubscriptionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return nil, fmt.Errorf("unexpected query type %T. expect *ent.UserSubscriptionQuery", q)
|
|
}
|
|
|
|
// The TraverseUserSubscription type is an adapter to allow the use of ordinary function as Traverser.
|
|
type TraverseUserSubscription func(context.Context, *ent.UserSubscriptionQuery) error
|
|
|
|
// Intercept is a dummy implementation of Intercept that returns the next Querier in the pipeline.
|
|
func (f TraverseUserSubscription) Intercept(next ent.Querier) ent.Querier {
|
|
return next
|
|
}
|
|
|
|
// Traverse calls f(ctx, q).
|
|
func (f TraverseUserSubscription) Traverse(ctx context.Context, q ent.Query) error {
|
|
if q, ok := q.(*ent.UserSubscriptionQuery); ok {
|
|
return f(ctx, q)
|
|
}
|
|
return fmt.Errorf("unexpected query type %T. expect *ent.UserSubscriptionQuery", q)
|
|
}
|
|
|
|
// NewQuery returns the generic Query interface for the given typed query.
|
|
func NewQuery(q ent.Query) (Query, error) {
|
|
switch q := q.(type) {
|
|
case *ent.APIKeyQuery:
|
|
return &query[*ent.APIKeyQuery, predicate.APIKey, apikey.OrderOption]{typ: ent.TypeAPIKey, tq: q}, nil
|
|
case *ent.AccountQuery:
|
|
return &query[*ent.AccountQuery, predicate.Account, account.OrderOption]{typ: ent.TypeAccount, tq: q}, nil
|
|
case *ent.AccountGroupQuery:
|
|
return &query[*ent.AccountGroupQuery, predicate.AccountGroup, accountgroup.OrderOption]{typ: ent.TypeAccountGroup, tq: q}, nil
|
|
case *ent.AnnouncementQuery:
|
|
return &query[*ent.AnnouncementQuery, predicate.Announcement, announcement.OrderOption]{typ: ent.TypeAnnouncement, tq: q}, nil
|
|
case *ent.AnnouncementReadQuery:
|
|
return &query[*ent.AnnouncementReadQuery, predicate.AnnouncementRead, announcementread.OrderOption]{typ: ent.TypeAnnouncementRead, tq: q}, nil
|
|
case *ent.AuthIdentityQuery:
|
|
return &query[*ent.AuthIdentityQuery, predicate.AuthIdentity, authidentity.OrderOption]{typ: ent.TypeAuthIdentity, tq: q}, nil
|
|
case *ent.AuthIdentityChannelQuery:
|
|
return &query[*ent.AuthIdentityChannelQuery, predicate.AuthIdentityChannel, authidentitychannel.OrderOption]{typ: ent.TypeAuthIdentityChannel, tq: q}, nil
|
|
case *ent.ChannelMonitorQuery:
|
|
return &query[*ent.ChannelMonitorQuery, predicate.ChannelMonitor, channelmonitor.OrderOption]{typ: ent.TypeChannelMonitor, tq: q}, nil
|
|
case *ent.ChannelMonitorDailyRollupQuery:
|
|
return &query[*ent.ChannelMonitorDailyRollupQuery, predicate.ChannelMonitorDailyRollup, channelmonitordailyrollup.OrderOption]{typ: ent.TypeChannelMonitorDailyRollup, tq: q}, nil
|
|
case *ent.ChannelMonitorHistoryQuery:
|
|
return &query[*ent.ChannelMonitorHistoryQuery, predicate.ChannelMonitorHistory, channelmonitorhistory.OrderOption]{typ: ent.TypeChannelMonitorHistory, tq: q}, nil
|
|
case *ent.ChannelMonitorRequestTemplateQuery:
|
|
return &query[*ent.ChannelMonitorRequestTemplateQuery, predicate.ChannelMonitorRequestTemplate, channelmonitorrequesttemplate.OrderOption]{typ: ent.TypeChannelMonitorRequestTemplate, tq: q}, nil
|
|
case *ent.ErrorPassthroughRuleQuery:
|
|
return &query[*ent.ErrorPassthroughRuleQuery, predicate.ErrorPassthroughRule, errorpassthroughrule.OrderOption]{typ: ent.TypeErrorPassthroughRule, tq: q}, nil
|
|
case *ent.GroupQuery:
|
|
return &query[*ent.GroupQuery, predicate.Group, group.OrderOption]{typ: ent.TypeGroup, tq: q}, nil
|
|
case *ent.IdempotencyRecordQuery:
|
|
return &query[*ent.IdempotencyRecordQuery, predicate.IdempotencyRecord, idempotencyrecord.OrderOption]{typ: ent.TypeIdempotencyRecord, tq: q}, nil
|
|
case *ent.IdentityAdoptionDecisionQuery:
|
|
return &query[*ent.IdentityAdoptionDecisionQuery, predicate.IdentityAdoptionDecision, identityadoptiondecision.OrderOption]{typ: ent.TypeIdentityAdoptionDecision, tq: q}, nil
|
|
case *ent.PaymentAuditLogQuery:
|
|
return &query[*ent.PaymentAuditLogQuery, predicate.PaymentAuditLog, paymentauditlog.OrderOption]{typ: ent.TypePaymentAuditLog, tq: q}, nil
|
|
case *ent.PaymentOrderQuery:
|
|
return &query[*ent.PaymentOrderQuery, predicate.PaymentOrder, paymentorder.OrderOption]{typ: ent.TypePaymentOrder, tq: q}, nil
|
|
case *ent.PaymentProviderInstanceQuery:
|
|
return &query[*ent.PaymentProviderInstanceQuery, predicate.PaymentProviderInstance, paymentproviderinstance.OrderOption]{typ: ent.TypePaymentProviderInstance, tq: q}, nil
|
|
case *ent.PendingAuthSessionQuery:
|
|
return &query[*ent.PendingAuthSessionQuery, predicate.PendingAuthSession, pendingauthsession.OrderOption]{typ: ent.TypePendingAuthSession, tq: q}, nil
|
|
case *ent.PromoCodeQuery:
|
|
return &query[*ent.PromoCodeQuery, predicate.PromoCode, promocode.OrderOption]{typ: ent.TypePromoCode, tq: q}, nil
|
|
case *ent.PromoCodeUsageQuery:
|
|
return &query[*ent.PromoCodeUsageQuery, predicate.PromoCodeUsage, promocodeusage.OrderOption]{typ: ent.TypePromoCodeUsage, tq: q}, nil
|
|
case *ent.ProxyQuery:
|
|
return &query[*ent.ProxyQuery, predicate.Proxy, proxy.OrderOption]{typ: ent.TypeProxy, tq: q}, nil
|
|
case *ent.RedeemCodeQuery:
|
|
return &query[*ent.RedeemCodeQuery, predicate.RedeemCode, redeemcode.OrderOption]{typ: ent.TypeRedeemCode, tq: q}, nil
|
|
case *ent.SecuritySecretQuery:
|
|
return &query[*ent.SecuritySecretQuery, predicate.SecuritySecret, securitysecret.OrderOption]{typ: ent.TypeSecuritySecret, tq: q}, nil
|
|
case *ent.SettingQuery:
|
|
return &query[*ent.SettingQuery, predicate.Setting, setting.OrderOption]{typ: ent.TypeSetting, tq: q}, nil
|
|
case *ent.SubscriptionPlanQuery:
|
|
return &query[*ent.SubscriptionPlanQuery, predicate.SubscriptionPlan, subscriptionplan.OrderOption]{typ: ent.TypeSubscriptionPlan, tq: q}, nil
|
|
case *ent.TLSFingerprintProfileQuery:
|
|
return &query[*ent.TLSFingerprintProfileQuery, predicate.TLSFingerprintProfile, tlsfingerprintprofile.OrderOption]{typ: ent.TypeTLSFingerprintProfile, tq: q}, nil
|
|
case *ent.UsageCleanupTaskQuery:
|
|
return &query[*ent.UsageCleanupTaskQuery, predicate.UsageCleanupTask, usagecleanuptask.OrderOption]{typ: ent.TypeUsageCleanupTask, tq: q}, nil
|
|
case *ent.UsageLogQuery:
|
|
return &query[*ent.UsageLogQuery, predicate.UsageLog, usagelog.OrderOption]{typ: ent.TypeUsageLog, tq: q}, nil
|
|
case *ent.UserQuery:
|
|
return &query[*ent.UserQuery, predicate.User, user.OrderOption]{typ: ent.TypeUser, tq: q}, nil
|
|
case *ent.UserAllowedGroupQuery:
|
|
return &query[*ent.UserAllowedGroupQuery, predicate.UserAllowedGroup, userallowedgroup.OrderOption]{typ: ent.TypeUserAllowedGroup, tq: q}, nil
|
|
case *ent.UserAttributeDefinitionQuery:
|
|
return &query[*ent.UserAttributeDefinitionQuery, predicate.UserAttributeDefinition, userattributedefinition.OrderOption]{typ: ent.TypeUserAttributeDefinition, tq: q}, nil
|
|
case *ent.UserAttributeValueQuery:
|
|
return &query[*ent.UserAttributeValueQuery, predicate.UserAttributeValue, userattributevalue.OrderOption]{typ: ent.TypeUserAttributeValue, tq: q}, nil
|
|
case *ent.UserSubscriptionQuery:
|
|
return &query[*ent.UserSubscriptionQuery, predicate.UserSubscription, usersubscription.OrderOption]{typ: ent.TypeUserSubscription, tq: q}, nil
|
|
default:
|
|
return nil, fmt.Errorf("unknown query type %T", q)
|
|
}
|
|
}
|
|
|
|
type query[T any, P ~func(*sql.Selector), R ~func(*sql.Selector)] struct {
|
|
typ string
|
|
tq interface {
|
|
Limit(int) T
|
|
Offset(int) T
|
|
Unique(bool) T
|
|
Order(...R) T
|
|
Where(...P) T
|
|
}
|
|
}
|
|
|
|
func (q query[T, P, R]) Type() string {
|
|
return q.typ
|
|
}
|
|
|
|
func (q query[T, P, R]) Limit(limit int) {
|
|
q.tq.Limit(limit)
|
|
}
|
|
|
|
func (q query[T, P, R]) Offset(offset int) {
|
|
q.tq.Offset(offset)
|
|
}
|
|
|
|
func (q query[T, P, R]) Unique(unique bool) {
|
|
q.tq.Unique(unique)
|
|
}
|
|
|
|
func (q query[T, P, R]) Order(orders ...func(*sql.Selector)) {
|
|
rs := make([]R, len(orders))
|
|
for i := range orders {
|
|
rs[i] = orders[i]
|
|
}
|
|
q.tq.Order(rs...)
|
|
}
|
|
|
|
func (q query[T, P, R]) WhereP(ps ...func(*sql.Selector)) {
|
|
p := make([]P, len(ps))
|
|
for i := range ps {
|
|
p[i] = ps[i]
|
|
}
|
|
q.tq.Where(p...)
|
|
}
|