Step 4. Watching Features
Step duration ~28 min
Step 4.1: Email Confirmation
Set the default role not authorised for every new user (object from WebUser) and create a simple scenario:

Add two data structures.
ConfirmRequest with the following fields:
user_id— link toWebUsercode— type of stringFields for sync result processing
is_successtype of booleanresult_titletype of stringresult_texttype of string.
CodeRequest with the following fields:
user_id— link toWebUserFields for sync result processing:
is_successtype of booleanresult_titletype of stringresult_texttype of string.
Create a new web page called 'Watch features' and add two conditional sections:
The first section is visible only for users with the
not confirmedrole and includes two forms:Form for submitting
ConfirmRequestForm for submitting
CodeRequest
The second section is visible only for users with the
confirmedrole.

The 'CodeRequest'form triggers a scenario in sync mode, which generates and sends a code to the user. The code is then saved in theWebUser object.

The 'ConfirmRequest' form compares the provided code with the one saved in the the 'WebUser' object. If they match, the role 'not confirmed' is removed, and the role 'confirmed' is added to the 'role' field in the 'WebUser' object.

Step 4.2: Watching Features
Create a new data structure called 'WatchRequest' with the following fields:
'user_id' – a link to 'WebUser.'
'feature_id' – a link to 'features.'
'type' – a string type to store 'watch' or 'unwatch'."
Add a new field 'users_watching_ids' with the type 'arrayLink' to the 'Features' data structure.
Create a new API-endpoint and a new web-page named 'Watch features.' In the endpoint, set a filter 'users_watching_ids arrayContainsAny {{id}}' to select only the features where the user's ID is in 'users_watching_ids.'
Now, add two actions:
'Watch' on the 'Upvote features' web-page.
'Unwatch' on the 'Watch features' web-page.
Scenario for processing WatchRequest (can be either synchronous or regular)

Next, create a new scenario triggered by changes in the development_status and request_status fields of the feature object. This scenario sends objects from the users_watching_ids to the 'Notify users' scenario, passing the feature_id as a parameter (context variable).

That is it! Thank you for using Directual. You can find the Open Development Roadmap app among our free templates.
Last updated
Was this helpful?