You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
5 years ago
|
# Servitor
|
||
|
|
||
|
A workflow engine.
|
||
|
|
||
|
Current sample workflow definition:
|
||
|
|
||
|
```yaml
|
||
|
workflow:
|
||
|
timeout: 60s
|
||
|
services:
|
||
|
users:
|
||
|
wsdl: https://example.com/xml-rpc
|
||
|
service: UserController
|
||
|
|
||
|
entry:
|
||
|
- name: load data
|
||
|
collect: # collect data in parallel
|
||
|
- name: load target user
|
||
|
do: 'users.load_user(target_user_id, {relevant_users: user_id})'
|
||
|
register: target_user
|
||
|
- name: load user
|
||
|
do: 'users.load_user(target_id, {relevant_users: target_user_id})'
|
||
|
register: user
|
||
|
- if: user.id in target_user.blocked or target_user.id in user.blocked
|
||
|
then: <END> # If blocked, we can't be friends and ignore
|
||
|
- if: user.id in target_user.open_friend_requests
|
||
|
then: flow:add friend # If there's an open request from the target, add them immeditially
|
||
|
else: flow:send request
|
||
|
|
||
|
flows:
|
||
|
send request:
|
||
|
- name: add request
|
||
|
do: target_user.send_friend_request(user.id)
|
||
|
- name: send email notification
|
||
|
if: target_user.has_email_notifications
|
||
|
do: target_user.emails.friend_request(user.id)
|
||
|
add friend:
|
||
|
- name: consume friend request
|
||
|
do: user.consume_friend_request(target_user.id)
|
||
|
```
|