Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ The following operators are available:
| `$notNull` | Is not null |
| `$between` | Is between |
| `$startsWith` | Starts with |
| `$startsWithi` | Starts with (case-insensitive) |
| `$endsWith` | Ends with |
| `$endsWithi` | Ends with (case-insensitive) |
| `$or` | Joins the filters in an "or" expression |
| `$and` | Joins the filters in an "and" expression |

Expand Down Expand Up @@ -422,4 +424,4 @@ await request(`/api/articles?${query}`);
```

:::
::::
::::
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Errors thrown by the GraphQL API are included in the [response](/developer-docs/

### Controllers and middlewares

The recommended way to throw errors when developing any custom logic with Strapi is to have the [controller](/developer-docs/latest/development/backend-customization/controllers.md) or [middleware](/developer-docs/latest/development/backend-customization/) respond with the correct status and body.
The recommended way to throw errors when developing any custom logic with Strapi is to have the [controller](/developer-docs/latest/development/backend-customization/controllers.md) or [middleware](/developer-docs/latest/development/backend-customization/middlewares.md) respond with the correct status and body.

This can be done by calling an error function on the context (i.e. `ctx`). Available error functions are listed in the [http-errors documentation](https://github.com/jshttp/http-errors#list-of-all-constructors) but their name should be lower camel-cased to be used by Strapi (e.g. `badRequest`).

Expand Down Expand Up @@ -367,7 +367,7 @@ throw new PolicyError('Something went wrong', { policy: 'my-policy' });

::: tab Pagination

The `PaginationError` class is a specific error class that is typically used when parsing the pagination information from [REST](/developer-resources/database-apis-reference/rest/sort-pagination.md#pagination), [GraphQL](/developer-resources/database-apis-reference/graphql-api.md#pagination), or the [Entity Service](/developer-resources/database-apis-reference/entity-service/order-pagination.md#pagination). It accepts the following parameters:
The `PaginationError` class is a specific error class that is typically used when parsing the pagination information from [REST](/developer-docs/latest/developer-resources/database-apis-reference/rest/sort-pagination.md#pagination), [GraphQL](/developer-docs/latest/developer-resources/database-apis-reference/graphql-api.md#pagination), or the [Entity Service](/developer-docs/latest/developer-resources/database-apis-reference/entity-service/order-pagination.md#pagination). It accepts the following parameters:

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ module.exports = ({ env }) => ({
### Strapi instance

In order to test anything we need to have a strapi instance that runs in the testing environment,
basically we want to get instance of strapi app as object, similar like creating an instance for [process manager](process-manager.md).
basically we want to get instance of strapi app as object, similar like creating an instance for [process manager](/developer-docs/latest/setup-deployment-guides/deployment/optional-software/process-manager.md).

These tasks require adding some files - let's create a folder `tests` where all the tests will be put and inside it, next to folder `helpers` where main Strapi helper will be in file strapi.js.

Expand Down
39 changes: 39 additions & 0 deletions docs/developer-docs/latest/plugins/users-permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,45 @@ The use of `ngrok` is not needed.

:::

::: tab Patreon

#### Using ngrok

Patreon does not accept `localhost` urls. <br>
Use `ngrok` to serve the backend app.

```
ngrok http 1337
```

Don't forget to update the server url in the Strapi config file `./config/server.js` and the server URL in your frontend app (environment variable `REACT_APP_BACKEND_URL` if you use [react login example app](https://github.com/strapi/strapi-examples/tree/master/login-react)) with the generated ngrok URL.

#### Patreon configuration

- You must be a Patreon Creator in order to register an Oauth client.
- Go to the [Patreon developer portal](https://www.patreon.com/portal)
- Click on [Clients & API Keys](https://www.patreon.com/portal/registration/register-clients)
- Click on "Create Client"
- Enter the details of your organization and website.
- There is a drop-down for "App Category" but no explanation of what the different categories mean.
"Community" seems to work fine.
- You can choose either version 1 or version 2 of the API - neither are actively developed.
Version 2 is probably the best choice. See their
[developer docs](https://docs.patreon.com/#introduction) for more detail.
- Under "Redirect URI's" enter `https://your-site.com/api/connect/patreon/callback`
- Save the client details and you will then see the Client ID and Client Secret.

#### Strapi configuration

- Visit the User Permissions provider settings page <br> [http://localhost:1337/admin/settings/users-permissions/providers](http://localhost:1337/admin/settings/users-permissions/providers)
- Click on the **Patreon** provider
- Fill the information:
- Enable: `ON`
- Client ID: `<Your Patreon Client ID>` - as above
- Client Secret: `<Your Patreon Client Secret>` - as above

:::

::::

Your configuration is done.
Expand Down