FQL.Schema.defForIdentifier()
Returns the definition for a user-defined collection or user-defined function (UDF) using the same rules as top-level identifier lookups.
Description
FQL.Schema.defForIdentifier()
returns the definition for a user-defined
collection or
UDF using the same rules as
top-level identifier lookups.
The lookup returns the first matching resource using the following precedence:
-
A user-defined collection where
.name == <IDENTIFIER>
-
A user-defined collection where
.alias == <IDENTIFIER>
-
A UDF where
.name == <IDENTIFIER>
-
A UDF where
.alias == <IDENTIFIER>
The document is an FQL definition for the resource’s FSL schema. See:
The method does not retrieve definitions for system collections or other resources.
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
identifier |
Yes |
Identifier for a user-defined collection or UDF. |
Examples
Get a user-defined collection’s definition
// Gets the FQL definition for the `Product` collection.
FQL.Schema.defForIdentifier('Product')
{
name: "Product",
coll: Collection,
ts: Time("2099-10-22T21:56:30.975Z"),
history_days: 0,
indexes: {
byCategory: {
terms: [
{
field: ".category",
mva: false
}
],
queryable: true,
status: "complete"
},
sortedByCategory: {
values: [
{
field: ".category",
order: "asc",
mva: false
}
],
queryable: true,
status: "complete"
},
byName: {
terms: [
{
field: ".name",
mva: false
}
],
queryable: true,
status: "complete"
},
sortedByPriceLowToHigh: {
values: [
{
field: ".price",
order: "asc",
mva: false
},
{
field: ".name",
order: "asc",
mva: false
},
{
field: ".description",
order: "asc",
mva: false
},
{
field: ".stock",
order: "asc",
mva: false
}
],
queryable: true,
status: "complete"
}
},
constraints: [
{
unique: [
{
field: ".name",
mva: false
}
],
status: "active"
},
{
check: {
name: "stockIsValid",
body: "(product) => product.stock >= 0"
}
},
{
check: {
name: "priceIsValid",
body: "(product) => product.price > 0"
}
}
],
fields: {
name: {
signature: "String"
},
description: {
signature: "String"
},
price: {
signature: "Int"
},
category: {
signature: "Ref<Category>"
},
stock: {
signature: "Int"
}
}
}
Get a UDF’s definition
// Gets the FQL definition for the `validateOrderStatusTransition()` UDF.
FQL.Schema.defForIdentifier('validateOrderStatusTransition')
{
name: "validateOrderStatusTransition",
coll: Function,
ts: Time("2024-10-28T15:11:25.460Z"),
body: <<-END
(oldStatus, newStatus) => {
if (oldStatus == "cart" && newStatus != "processing") {
abort("Invalid status transition.")
} else if (oldStatus == "processing" && newStatus != "shipped") {
abort("Invalid status transition.")
} else if (oldStatus == "shipped" && newStatus != "delivered") {
abort("Invalid status transition.")
}
}
END
}
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!