Class: QueryBuilder<T, Listing, Relationships, Attributes>
Defined in: schemas/v2/query.ts:111
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends Type | - |
Listing extends boolean | - |
Relationships extends RelationshipFields<T> | never |
Attributes extends RelationshipMap<T, Relationships> | { } |
Implements
BasePatreonQueryType<T,Listing>
Constructors
Constructor
new QueryBuilder<
T,Listing,Relationships,Attributes>(resource,isListing):QueryBuilder<T,Listing,Relationships,Attributes>
Defined in: schemas/v2/query.ts:134
Parameters
| Parameter | Type | Description |
|---|---|---|
resource | T | The main resource that this query is for. |
isListing | Listing | Whether this query is for listing the resource or only for for getting a single item of the resource. |
Returns
QueryBuilder<T, Listing, Relationships, Attributes>
Properties
| Property | Modifier | Type | Default value | Description |
|---|---|---|---|---|
_payload_type | readonly | RequestPayload<T, Relationships, Attributes, Listing> | undefined | The type to use for extracting the payload type. Do not use as the actual payload as it is an empty string and will not contain the actual payload. |
requestOptions | public | undefined | QueryRequestOptions | undefined | The options for the request, e.g. pagination and sorting. |
resource | readonly | T | undefined | The main resource that this query is for. |
Accessors
attributes
Get Signature
get attributes():
Attributes
Defined in: schemas/v2/query.ts:187
The attributes configured for this query.
Returns
Attributes
build
Get Signature
get build(): <
Includes>(include?) => <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Defined in: schemas/v2/query.ts:368
Deprecated
This will be removed some time after buildQuery has been removed
Returns
<
Includes>(include?): <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
| Type Parameter | Default type |
|---|---|
Includes extends never | never |
Parameters
| Parameter | Type |
|---|---|
include? | Includes[] |
Returns
<
Attributes>(attributes?,options?):QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
| Type Parameter |
|---|
Attributes extends RelationshipMap<T, Includes> |
Parameters
| Parameter | Type |
|---|---|
attributes? | Attributes |
options? | QueryRequestOptions |
Returns
QueryBuilder<T, Listing, Includes, Attributes>
params
Get Signature
get params():
URLSearchParams
Defined in: schemas/v2/query.ts:163
The raw search params. Use query for the stringified params.
Returns
URLSearchParams
Implementation of
BasePatreonQueryType.params
query
Get Signature
get query():
string
Defined in: schemas/v2/query.ts:180
The actual encoded query string. If the query is not empty, the query will be prefixed with ?.
Example
`'?fields%5Buser%5D=url%2Cname'`Returns
string
Implementation of
BasePatreonQueryType.query
relationships
Get Signature
get relationships():
Relationships[]
Defined in: schemas/v2/query.ts:194
The relationships configured for this query.
Returns
Relationships[]
resourceAttributes
Get Signature
get resourceAttributes():
Attributes[T]
Defined in: schemas/v2/query.ts:202
The attributes configured for this query on the main resource. For a campaign query, this will be the campaign attributes of the query.
Returns
Attributes[T]
schemaRelationships
Get Signature
get schemaRelationships(): readonly
RelationshipFields<T>[]
Defined in: schemas/v2/query.ts:210
The relationships that can be defined on this resource. In the Patreon documentation, see the list of relations on a resource.
Returns
readonly RelationshipFields<T>[]
schemaResourceAttributes
Get Signature
get schemaResourceAttributes(): readonly keyof
ItemMap[T][]
Defined in: schemas/v2/query.ts:218
The attributes that can be defined for this resource. In the Patreon documentation, see the list of properties on a resource.
Returns
readonly keyof ItemMap[T][]
campaign
Get Signature
get
staticcampaign():QueryBuilder<Campaign,false,never, { }>
Defined in: schemas/v2/query.ts:326
Returns
QueryBuilder<Campaign, false, never, { }>
campaignMembers
Get Signature
get
staticcampaignMembers():QueryBuilder<Member,true,never, { }>
Defined in: schemas/v2/query.ts:330
Returns
QueryBuilder<Member, true, never, { }>
campaignPosts
Get Signature
get
staticcampaignPosts():QueryBuilder<Post,true,never, { }>
Defined in: schemas/v2/query.ts:334
Returns
QueryBuilder<Post, true, never, { }>
campaigns
Get Signature
get
staticcampaigns():QueryBuilder<Campaign,true,never, { }>
Defined in: schemas/v2/query.ts:338
Returns
QueryBuilder<Campaign, true, never, { }>
identity
Get Signature
get
staticidentity():QueryBuilder<User,false,never, { }>
Defined in: schemas/v2/query.ts:342
Returns
QueryBuilder<User, false, never, { }>
member
Get Signature
get
staticmember():QueryBuilder<Member,false,never, { }>
Defined in: schemas/v2/query.ts:346
Returns
QueryBuilder<Member, false, never, { }>
post
Get Signature
get
staticpost():QueryBuilder<Post,false,never, { }>
Defined in: schemas/v2/query.ts:350
Returns
QueryBuilder<Post, false, never, { }>
webhooks
Get Signature
get
staticwebhooks():QueryBuilder<Webhook,true,never, { }>
Defined in: schemas/v2/query.ts:354
Returns
QueryBuilder<Webhook, true, never, { }>
Methods
addRelationshipAttributes()
addRelationshipAttributes<
R,A>(relationship,attributes):QueryBuilder<T,Listing,Relationships|R,Attributes& { [Item in never]: (Attributes extends { [K in never]: any } ? Attributes<Attributes>[RelationshipFieldToFieldType<T, R>][number] | A[number] : A[number])[] }>
Defined in: schemas/v2/query.ts:281
Type Parameters
| Type Parameter |
|---|
R extends never |
A extends keyof ItemMap[RelationshipFieldToFieldType<T, R>][] |
Parameters
| Parameter | Type |
|---|---|
relationship | R |
attributes | A |
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes & { [Item in never]: (Attributes extends { [K in never]: any } ? Attributes<Attributes>[RelationshipFieldToFieldType<T, R>][number] | A[number] : A[number])[] }>
addRelationships()
addRelationships<
R>(relationships):QueryBuilder<T,Listing,Relationships|R,Attributes>
Defined in: schemas/v2/query.ts:269
Type Parameters
| Type Parameter |
|---|
R extends never |
Parameters
| Parameter | Type |
|---|---|
relationships | R[] |
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes>
attributesFor()
attributesFor<
R>(relationship):undefined|Attributes[RelationshipFieldToFieldType<T,R>]
Defined in: schemas/v2/query.ts:228
Gets the attributes configured for a relationship
Type Parameters
| Type Parameter |
|---|
R extends never |
Parameters
| Parameter | Type | Description |
|---|---|---|
relationship | R | The name of the relationship |
Returns
undefined | Attributes[RelationshipFieldToFieldType<T, R>]
The attributes, or undefined for no attributes
Throws
When using an invalid relationship for the current resource
includeAll()
includeAll():
QueryBuilder<T,Listing,RelationshipFields<T>,Required<RelationshipMap<T,RelationshipFields<T>>>>
Defined in: schemas/v2/query.ts:251
Returns
QueryBuilder<T, Listing, RelationshipFields<T>, Required<RelationshipMap<T, RelationshipFields<T>>>>
includeAllRelationships()
includeAllRelationships():
QueryBuilder<T,Listing,RelationshipFields<T>,Attributes>
Defined in: schemas/v2/query.ts:243
Returns
QueryBuilder<T, Listing, RelationshipFields<T>, Attributes>
setAttributes()
setAttributes<
A>(attributes):QueryBuilder<T,Listing,Relationships,A>
Defined in: schemas/v2/query.ts:260
Type Parameters
| Type Parameter |
|---|
A extends RelationshipMap<T, Relationships> |
Parameters
| Parameter | Type |
|---|---|
attributes | A |
Returns
QueryBuilder<T, Listing, Relationships, A>
setRelationshipAttributes()
setRelationshipAttributes<
R,A>(relationship,attributes):QueryBuilder<T,Listing,Relationships|R,Attributesextends{ [K in never]: unknown }?Omit<Attributes<Attributes>,`${RelationshipFieldToFieldType<T, R>}`> :Attributes&{ [K in never]: A }>
Defined in: schemas/v2/query.ts:307
Type Parameters
| Type Parameter |
|---|
R extends never |
A extends keyof ItemMap[RelationshipFieldToFieldType<T, R>][] |
Parameters
| Parameter | Type |
|---|---|
relationship | R |
attributes | A |
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes extends { [K in never]: unknown } ? Omit<Attributes<Attributes>, `${RelationshipFieldToFieldType<T, R>}`> : Attributes & { [K in never]: A }>
setRelationships()
setRelationships<
R>(relationships):QueryBuilder<T,Listing,R,Attributes>
Defined in: schemas/v2/query.ts:275
Type Parameters
| Type Parameter |
|---|
R extends never |
Parameters
| Parameter | Type |
|---|---|
relationships | R[] |
Returns
QueryBuilder<T, Listing, R, Attributes>
setRequestOptions()
setRequestOptions(
options):this
Defined in: schemas/v2/query.ts:237
Set the request options for this query
Parameters
| Parameter | Type | Description |
|---|---|---|
options | QueryRequestOptions | The options for pagination, sorting, etc |
Returns
this
convertRelationToType()
staticconvertRelationToType<T,R>(type,relation):RelationshipFieldToFieldType<T,R>
Defined in: schemas/v2/query.ts:412
Convert a relationship name to a resource name
Type Parameters
| Type Parameter |
|---|
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook" |
R extends never |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | The resource that holds the relationship |
relation | R | The name of the relationship to find the resource name of |
Returns
RelationshipFieldToFieldType<T, R>
Throws
When using an invalid type
convertTypeToRelation()
staticconvertTypeToRelation<T,R>(type,relationType):RelationshipTypeToRelationshipField<T,R>
Defined in: schemas/v2/query.ts:425
Convert a relation resource name to a relationship name
Type Parameters
| Type Parameter |
|---|
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook" |
R extends never |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | The resource that holds the relationship |
relationType | R | The resource name of the relationship to find the relationship name of |
Returns
RelationshipTypeToRelationshipField<T, R>
Throws
When using an invalid type or unknown relation type
createCompleteOptions()
staticcreateCompleteOptions<T>(resource): {attributes:RelationshipMap<T,RelationshipFields<T>>;include:RelationshipFields<T>[]; }
Defined in: schemas/v2/query.ts:363
Get all options that can be included in a query
Type Parameters
| Type Parameter |
|---|
T extends Type |
Parameters
| Parameter | Type | Description |
|---|---|---|
resource | T | The resource to get the options for |
Returns
{ attributes: RelationshipMap<T, RelationshipFields<T>>; include: RelationshipFields<T>[]; }
the relationship names in include and the attributes in attributes
attributes
attributes:
RelationshipMap<T,RelationshipFields<T>>
include
include:
RelationshipFields<T>[]
createFunctionBuilder()
staticcreateFunctionBuilder<T,Listing>(builder): <Includes>(include?) => <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Defined in: schemas/v2/query.ts:379
Create a function builder from a query builder.
This is to support the legacy buildQuery.
Type Parameters
| Type Parameter |
|---|
T extends Type |
Listing extends boolean |
Parameters
| Parameter | Type | Description |
|---|---|---|
builder | QueryBuilder<T, Listing> | The query builder to convert |
Returns
<
Includes>(include?): <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
| Type Parameter | Default type |
|---|---|
Includes extends never | never |
Parameters
| Parameter | Type |
|---|---|
include? | Includes[] |
Returns
<
Attributes>(attributes?,options?):QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
| Type Parameter |
|---|
Attributes extends RelationshipMap<T, Includes> |
Parameters
| Parameter | Type |
|---|---|
attributes? | Attributes |
options? | QueryRequestOptions |
Returns
QueryBuilder<T, Listing, Includes, Attributes>
Deprecated
createRelationMap()
staticcreateRelationMap<T>(type):{ [R in never]: RelationshipFieldToFieldType<T, R> }
Defined in: schemas/v2/query.ts:400
Create a record to convert relation names to resources.
Type Parameters
| Type Parameter |
|---|
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook" |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | The resource to create the map for |
Returns
{ [R in never]: RelationshipFieldToFieldType<T, R> }
Throws
When using an invalid type
fromParams()
staticfromParams<Q>(params):Q
Defined in: schemas/v2/query.ts:436
Type Parameters
| Type Parameter |
|---|
Q extends BasePatreonQueryType<Type, boolean> |
Parameters
| Parameter | Type |
|---|---|
params | URLSearchParams |
Returns
Q