Role.firstWhere()

Learn: Roles

Get the first role matching a provided predicate.

Signature

Role.firstWhere(pred: (Role => Boolean)) => Role | Null

Description

Gets the first Role document that matches a provided predicate function.

Staged schema

If a database has staged schema, this method interacts with the database’s staged schema, not the active schema.

Parameters

Parameter Type Required Description

pred

Predicate function

Yes

Anonymous predicate function that:

The method returns the first Role document for which the predicate returns true.

Return value

One of:

Type Description

Role

First Role document that matches the predicate.

Null

No Role document matches the predicate.

Examples

Role.firstWhere(.name.includes("manager"))
{
  name: "manager",
  coll: Role,
  ts: Time("2099-10-28T16:01:40.805Z"),
  privileges: [
    {
      resource: "OrderItem",
      actions: {
        create: true,
        read: true,
        write: true,
        delete: true
      }
    },
    {
      resource: "Customer",
      actions: {
        read: true
      }
    },
    {
      resource: "Manager",
      actions: {
        read: "(doc) => Query.identity() == doc && Date.today().dayOfWeek < 6"
      }
    },
    {
      resource: "getOrCreateCart",
      actions: {
        call: true
      }
    },
    {
      resource: "checkout",
      actions: {
        call: <<-END
          (args) => {
            let order = Order.byId(args[0])!
            order?.customer == Query.identity()
          }
        END
      }
    }
  ],
  membership: [
    {
      resource: "Manager"
    },
    {
      resource: "User",
      predicate: "(user) => user.accessLevel == \"manager\""
    }
  ]
}

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!