generated from camunda-community-hub/template-repo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspacetraders-monitor-status.bpmn
279 lines (279 loc) · 52.1 KB
/
spacetraders-monitor-status.bpmn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:modeler="http://camunda.org/schema/modeler/1.0" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Web Modeler" exporterVersion="87be256" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.3.0" camunda:diagramRelationId="267322b1-42a7-4fab-8ad5-8e0e729b2ce6">
<bpmn:process id="space-traders-monitor-status" name="SpaceTraders Monitor Status" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:extensionElements>
<zeebe:formDefinition formId="Form_m5yk1kc" />
</bpmn:extensionElements>
<bpmn:outgoing>Flow_08ojg0k</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_08ojg0k" sourceRef="StartEvent_1" targetRef="Activity_0dghdma" />
<bpmn:sequenceFlow id="Flow_0lp9i5p" sourceRef="Activity_0dghdma" targetRef="Event_0ynrge1" />
<bpmn:intermediateCatchEvent id="Event_0ynrge1" name="Next server restart">
<bpmn:incoming>Flow_0lp9i5p</bpmn:incoming>
<bpmn:outgoing>Flow_1yf03dd</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1khpwt3">
<bpmn:timeDate xsi:type="bpmn:tFormalExpression">=serverResets.next</bpmn:timeDate>
</bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent>
<bpmn:endEvent id="Event_1wb8x3q">
<bpmn:incoming>Flow_1yf03dd</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1yf03dd" sourceRef="Event_0ynrge1" targetRef="Event_1wb8x3q" />
<bpmn:subProcess id="Activity_14c5r5q" name="Get status" triggeredByEvent="true">
<bpmn:startEvent id="Event_0q8779i" name="Every X minutes" isInterrupting="false">
<bpmn:outgoing>Flow_1fxtdco</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1xf0lyv">
<bpmn:timeCycle xsi:type="bpmn:tFormalExpression">="R/PT" + string(interval) + "M"</bpmn:timeCycle>
</bpmn:timerEventDefinition>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_1fxtdco" sourceRef="Event_0q8779i" targetRef="Activity_0qjbx34" />
<bpmn:sequenceFlow id="Flow_1frktj9" sourceRef="Activity_0qjbx34" targetRef="Activity_15t5ybd" />
<bpmn:sequenceFlow id="Flow_101jh8q" sourceRef="Activity_15t5ybd" targetRef="Activity_1761aa0" />
<bpmn:sequenceFlow id="Flow_0a80yck" sourceRef="Activity_1761aa0" targetRef="Activity_13sz1z9" />
<bpmn:scriptTask id="Activity_13sz1z9" name="Build status message">
<bpmn:extensionElements>
<zeebe:script expression="={ credits: string(current_credits), fulfillment: string(decimal(contacts_fulfillment * 100, 0)) + "%", ship_details_message: string join( for ship in ship_details return { fuel: if ship.fuel != null then string(decimal(ship.fuel * 100, 0)) + "%" else "-", cargo: if ship.cargo != null then string(decimal(ship.cargo * 100, 0)) + "%" else "-", message: "- _" + ship.symbol + "_ [" + ship.type + "] at _" + ship.waypoint + "_ [" + ship.status + "]" + ", fuel: " + fuel + ", cargo-load: " + cargo }.message, "\n"), message: "*Status:* Agent: `" + agent_symbol + "`\nCredits: `" + credits + "`\nContract fulfillment: `" + fulfillment + "`\nShips:\n" + ship_details_message + "." }.message" resultVariable="status_message" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0a80yck</bpmn:incoming>
<bpmn:outgoing>Flow_0bn2vxz</bpmn:outgoing>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0bn2vxz" sourceRef="Activity_13sz1z9" targetRef="Activity_071wpfg" />
<bpmn:serviceTask id="Activity_071wpfg" name="Send Slack status message" zeebe:modelerTemplate="io.camunda.connectors.Slack.v1" zeebe:modelerTemplateVersion="2" zeebe:modelerTemplateIcon="data:image/svg+xml;utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20%20viewBox%3D%220%200%20127%20127%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M27.2%2080c0%207.3-5.9%2013.2-13.2%2013.2C6.7%2093.2.8%2087.3.8%2080c0-7.3%205.9-13.2%2013.2-13.2h13.2V80zm6.6%200c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2v33c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V80z%22%20fill%3D%22%23E01E5A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M47%2027c-7.3%200-13.2-5.9-13.2-13.2C33.8%206.5%2039.7.6%2047%20.6c7.3%200%2013.2%205.9%2013.2%2013.2V27H47zm0%206.7c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H13.9C6.6%2060.1.7%2054.2.7%2046.9c0-7.3%205.9-13.2%2013.2-13.2H47z%22%20fill%3D%22%2336C5F0%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M99.9%2046.9c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H99.9V46.9zm-6.6%200c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V13.8C66.9%206.5%2072.8.6%2080.1.6c7.3%200%2013.2%205.9%2013.2%2013.2v33.1z%22%20fill%3D%22%232EB67D%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M80.1%2099.8c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V99.8h13.2zm0-6.6c-7.3%200-13.2-5.9-13.2-13.2%200-7.3%205.9-13.2%2013.2-13.2h33.1c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H80.1z%22%20fill%3D%22%23ECB22E%22%2F%3E%0A%3C%2Fsvg%3E%0A">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda:slack:1" />
<zeebe:ioMapping>
<zeebe:input source="chat.postMessage" target="method" />
<zeebe:input source="{{secrets.SLACK_TOKEN}}" target="token" />
<zeebe:input source="="{{secrets.SLACK_CHANNEL}}"" target="data.channel" />
<zeebe:input source="=status_message" target="data.text" />
</zeebe:ioMapping>
<zeebe:taskHeaders />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0bn2vxz</bpmn:incoming>
<bpmn:outgoing>Flow_1xwe1b3</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id="Event_0aa5vd4">
<bpmn:incoming>Flow_1xwe1b3</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1xwe1b3" sourceRef="Activity_071wpfg" targetRef="Event_0aa5vd4" />
<bpmn:serviceTask id="Activity_0qjbx34" name="Get agent" zeebe:modelerTemplate="com.camunda.SpaceTradersApi" zeebe:modelerTemplateVersion="5" zeebe:modelerTemplateIcon="data:image/png;base64,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">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda:http-json:1" retries="10" />
<zeebe:ioMapping>
<zeebe:input source="placeholder" target="objects" />
<zeebe:input source="bearer" target="authentication.type" />
<zeebe:input source="= token" target="authentication.token" />
<zeebe:input source="get" target="method" />
<zeebe:input source="="https://api.spacetraders.io/v2/my/agent"" target="url" />
<zeebe:input source="={ }" target="queryParameters" />
</zeebe:ioMapping>
<zeebe:taskHeaders>
<zeebe:header key="category" value="agents" />
<zeebe:header key="operation" value="getMyAgent" />
<zeebe:header key="resultExpression" value="={"agent": response.body.data, "agent_symbol": agent.symbol, "current_credits": agent.credits}" />
<zeebe:header key="errorExpression" value="=if matches(error.code, "4\d\d") then { error_code: substring after(extract(error.message,"\"code\":\d{4}")[1], ":"), error_message: substring(extract(error.message, "\"message\":\"(\w|\d|\s|\.|\-)+")[1], 12), error_code_by_name: { "4000":"cooldownConflictError", "4001":"waypointNoAccessError", "4100":"tokenEmptyError", "4101":"tokenMissingSubjectError", "4102":"tokenInvalidSubjectError", "4103":"missingTokenRequestError", "4104":"invalidTokenRequestError", "4105":"invalidTokenSubjectError", "4106":"accountNotExistsError", "4107":"agentNotExistsError", "4108":"accountHasNoAgentError", "4109":"registerAgentExistsError", "4110":"registerAgentSymbolReservedError", "4111":"registerAgentConflictSymbolError", "4200":"navigateInTransitError", "4201":"navigateInvalidDestinationError", "4202":"navigateOutsideSystemError", "4203":"navigateInsufficientFuelError", "4204":"navigateSameDestinationError", "4205":"shipExtractInvalidWaypointError", "4206":"shipExtractPermissionError", "4207":"shipJumpNoSystemError", "4208":"shipJumpSameSystemError", "4210":"shipJumpMissingModuleError", "4211":"shipJumpNoValidWaypointError", "4212":"shipJumpMissingAntimatterError", "4214":"shipInTransitError", "4215":"shipMissingSensorArraysError", "4216":"purchaseShipCreditsError", "4217":"shipCargoExceedsLimitError", "4218":"shipCargoMissingError", "4219":"shipCargoUnitCountError", "4220":"shipSurveyVerificationError", "4221":"shipSurveyExpirationError", "4222":"shipSurveyWaypointTypeError", "4223":"shipSurveyOrbitError", "4224":"shipSurveyExhaustedError", "4225":"shipRefuelDockedError", "4226":"shipRefuelInvalidWaypointError", "4227":"shipMissingMountsError", "4228":"shipCargoFullError", "4229":"shipJumpFromGateToGateError", "4230":"waypointChartedError", "4231":"shipTransferShipNotFound", "4232":"shipTransferAgentConflict", "4233":"shipTransferSameShipConflict", "4234":"shipTransferLocationConflict", "4235":"warpInsideSystemError", "4236":"shipNotInOrbitError", "4237":"shipInvalidRefineryGoodError", "4238":"shipInvalidRefineryTypeError", "4239":"shipMissingRefineryError", "4240":"shipMissingSurveyorError", "4241":"shipMissingWarpDriveError", "4242":"shipMissingMineralProcessorError", "4243":"shipMissingMiningLasersError", "4244":"shipNotDockedError", "4245":"purchaseShipNotPresentError", "4246":"shipMountNoShipyardError", "4247":"shipMissingMountError", "4248":"shipMountInsufficientCreditsError", "4249":"shipMissingPowerError", "4250":"shipMissingSlotsError", "4251":"shipMissingMountsError", "4252":"shipMissingCrewError", "4253":"shipExtractDestabilizedError", "4254":"shipJumpInvalidOriginError", "4255":"shipJumpInvalidWaypointError", "4256":"shipJumpOriginUnderConstructionError", "4257":"shipMissingGasProcessorError", "4258":"shipMissingGasSiphonsError", "4259":"shipSiphonInvalidWaypointError", "4260":"shipSiphonPermissionError", "4261":"waypointNoYieldError", "4262":"shipJumpDestinationUnderConstructionError", "4500":"acceptContractNotAuthorizedError", "4501":"acceptContractConflictError", "4502":"fulfillContractDeliveryError", "4503":"contractDeadlineError", "4504":"contractFulfilledError", "4505":"contractNotAcceptedError", "4506":"contractNotAuthorizedError", "4508":"shipDeliverTermsError", "4509":"shipDeliverFulfilledError", "4510":"shipDeliverInvalidLocationError", "4511":"existingContractError", "4600":"marketTradeInsufficientCreditsError", "4601":"marketTradeNoPurchaseError", "4602":"marketTradeNotSoldError", "4603":"marketNotFoundError", "4604":"marketTradeUnitLimitError", "4700":"waypointNoFactionError", "4800":"constructionMaterialNotRequired", "4801":"constructionMaterialFulfilled", "4802":"shipConstructionInvalidLocationError" }, bpmn_error_code: get or else(get value(error_code_by_name, error_code), error_code), error_data: {error_code: error_code, error_message: error_message, error_name: bpmn_error_code}, bpmnError: bpmnError(bpmn_error_code, error_message, error_data) }.bpmnError else null" />
<zeebe:header key="retryBackoff" value="PT1S" />
</zeebe:taskHeaders>
<zeebe:properties>
<zeebe:property name="custom_error_handling" value="by_error_name" />
</zeebe:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1fxtdco</bpmn:incoming>
<bpmn:outgoing>Flow_1frktj9</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Activity_15t5ybd" name="Get contracts" zeebe:modelerTemplate="com.camunda.SpaceTradersApi" zeebe:modelerTemplateVersion="5" zeebe:modelerTemplateIcon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFsElEQVRYR+2WW2wUVRzGf2d2t9vthd6AllZKAVvEUqAFBOItQYKQNEATAlFDgiYC8YFo8IE3UUNIfFAfUKzQGhKUYNHAgwgaCWnjBVEEAq0SoVxaKNKLpbftbnfGnHNmdme3LRaffGCSzVz2zPm+833f/39GtNYutoRhIIT9MwyQ184z+zzis+h7AsuywDKxTBMr4ayej/JM/A8ILHIp4IGElTtKIATC8Gil1BihlZJn5M+KqaBWK++1IlgR9V+iOpgmorV2kRWb1IgRSLBBg2nw6LUiIcHtQ4IouW07XLJLsDgbLJN4AsIF7sqEVkQMA1eKRMG1AupQJDSRuEyMkhHRWiMt0ACJQXOvOia5HOeASwViAmgOjhUOiZgVipSjhB1M0VqzUGUgHswBcUvukIydJZzGFxLW8UGJIcHCYZPm9gjtQ8lM9AeZmimzoK1QSskMtNQ8pjMwgr/D/XbCp4OnHYiXQCrd1h3hxOBUmjJmQUERmBGevXyYxanNdhBjFomWvZKATHi8ClpmTcy5vnPX5PebITrumphARoqHKRN9TMv14zWU+Hx7K4P6ySvw5uVHvSkKCBY0vM+M7N5h/UK07F2gFIgCRonEpG5sGWJ/Qy8XroekcnGHvM1IMXh9dQ5NgRL+LK/CSPKR13OZzqSJhPzpLLHuUHqxmoyAtsbdtETLnvmWU8+JklsIPvt+gLof+zFt4NTUAOHwEIbHIDgw6ASfJyvLCVWuR3g8eAd7WXnqLb4Mzmda1TrmXfyKGZEzMe9dVSJufDxPK2BXgluN/Q1B6k4NxC/ZvvN6PZDkJ2d6Ib2d3Uzf9CKBvFwVrpk/13IxbQ4ir4gNU3x46ncxaVwkoUR1DsSN6gpLd7l4v39pjrDjcF9Ucp/Pi0euOhhSFCqeWUjV5rX0evyc+eEc3cWl0b4Q6e/Hn5rCC/kG3Uf3UpraYsseX5pycnG9ulyH0OkDQhA2BVv29dHWnWC4vfoJZTNZsWEVl4eS6Gr/G++4dPw52YR7+0jPzqAwxWDpeINbxw8xU5zDUCU6Un+QBD6aqxVw+rowaPgjwnvHtL+jHTJIknjRc2vImjub5k8/Z+2W51lZkoUvFOLYgYOUehuZkG53R90cXErodi2u7Z5t94HY5mIiONEYoSDLQ362Qd1PIY6eC+uWI+yt12YWyMkid0oB216pJD83i8MNTRw59B0dV26weWmA5XOSFHC0RdtE9BZtIa59WBZVwFHC3Wol4JAJG6r76A8JMjPT6OrqUfA56YLMVIOucBobN63im0gmCyqKOf5uDVdPnWXTkmSWz/HpfcJZfdyuaSGufjBLZWA0cPm8Jwg7jgxyqU22H1TTqSxPoiTfQ+3JIO09Wtry7dtYV1HAmy9tJ9jRyWvL/Tz1iFfLPiIJSWBXqa2AQ0K32SFTcOkvmJxlqB6QHjDY/EmQzj6LVfN8LCvzcu6ayZ6Tg9FKeXrrRqzr16ivO66I7lzrZ8Yk2SJt70cgoQk4LV0GUV3HPjRu98DEdE3u6/MRMlMEj5d4GQjB1gNBbjuVYlnkL6zg1umzasWyTex72U+ydEAB61YdC6KdgSgBJ+5xW60GlgpeatOej0/TW3Ft/RBHz0eGFUlW9ji6Ou9S9pDgjdWO/5qEbsHxJRlTwD2VvctFP7dURqC7H6VAOAKNNy1qG0zl/+CQftldIa8u8/BEsati3MC2IuqdYQqMQEQF1PHJtQUHw/o76J2jES60wsPFk2m+0kphlsnONQYeNdb+UogGMV60exNwje3qh5vdgtJ8uNOjSzM/Uw840QS7T+ooBXzwdhUUZjsva/9HO8ZMQE7QO6j2LFKS4PZdSE+GFD988avg4Gl9v3WZxaOTRgdM/Oe+CChBrdiHsCxPSehqBxz+DdYvgpy0sYP/ewbGOJdU2P1hNsbXdKruGcL7mek/jn1A4IEC/wB+OnlF9mGuwgAAAABJRU5ErkJggg==">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda:http-json:1" retries="10" />
<zeebe:ioMapping>
<zeebe:input source="placeholder" target="objects" />
<zeebe:input source="1" target="objects.getContracts_page" />
<zeebe:input source="10" target="objects.getContracts_limit" />
<zeebe:input source="bearer" target="authentication.type" />
<zeebe:input source="=token" target="authentication.token" />
<zeebe:input source="get" target="method" />
<zeebe:input source="="https://api.spacetraders.io/v2/my/contracts"" target="url" />
<zeebe:input source="={ "page": objects.getContracts_page, "limit": objects.getContracts_limit }" target="queryParameters" />
</zeebe:ioMapping>
<zeebe:taskHeaders>
<zeebe:header key="category" value="contracts" />
<zeebe:header key="operation" value="getContracts" />
<zeebe:header key="resultExpression" value="={"contracts": response.body.data, "meta": response.body.meta, "contacts_fulfillment": mean(for contract in contracts return sum(contract.terms.deliver.unitsFulfilled) / sum(contract.terms.deliver.unitsRequired)) }" />
<zeebe:header key="errorExpression" value="=if matches(error.code, "4\d\d") then { error_code: substring after(extract(error.message,"\"code\":\d{4}")[1], ":"), error_message: substring(extract(error.message, "\"message\":\"(\w|\d|\s|\.|\-)+")[1], 12), error_code_by_name: { "4000":"cooldownConflictError", "4001":"waypointNoAccessError", "4100":"tokenEmptyError", "4101":"tokenMissingSubjectError", "4102":"tokenInvalidSubjectError", "4103":"missingTokenRequestError", "4104":"invalidTokenRequestError", "4105":"invalidTokenSubjectError", "4106":"accountNotExistsError", "4107":"agentNotExistsError", "4108":"accountHasNoAgentError", "4109":"registerAgentExistsError", "4110":"registerAgentSymbolReservedError", "4111":"registerAgentConflictSymbolError", "4200":"navigateInTransitError", "4201":"navigateInvalidDestinationError", "4202":"navigateOutsideSystemError", "4203":"navigateInsufficientFuelError", "4204":"navigateSameDestinationError", "4205":"shipExtractInvalidWaypointError", "4206":"shipExtractPermissionError", "4207":"shipJumpNoSystemError", "4208":"shipJumpSameSystemError", "4210":"shipJumpMissingModuleError", "4211":"shipJumpNoValidWaypointError", "4212":"shipJumpMissingAntimatterError", "4214":"shipInTransitError", "4215":"shipMissingSensorArraysError", "4216":"purchaseShipCreditsError", "4217":"shipCargoExceedsLimitError", "4218":"shipCargoMissingError", "4219":"shipCargoUnitCountError", "4220":"shipSurveyVerificationError", "4221":"shipSurveyExpirationError", "4222":"shipSurveyWaypointTypeError", "4223":"shipSurveyOrbitError", "4224":"shipSurveyExhaustedError", "4225":"shipRefuelDockedError", "4226":"shipRefuelInvalidWaypointError", "4227":"shipMissingMountsError", "4228":"shipCargoFullError", "4229":"shipJumpFromGateToGateError", "4230":"waypointChartedError", "4231":"shipTransferShipNotFound", "4232":"shipTransferAgentConflict", "4233":"shipTransferSameShipConflict", "4234":"shipTransferLocationConflict", "4235":"warpInsideSystemError", "4236":"shipNotInOrbitError", "4237":"shipInvalidRefineryGoodError", "4238":"shipInvalidRefineryTypeError", "4239":"shipMissingRefineryError", "4240":"shipMissingSurveyorError", "4241":"shipMissingWarpDriveError", "4242":"shipMissingMineralProcessorError", "4243":"shipMissingMiningLasersError", "4244":"shipNotDockedError", "4245":"purchaseShipNotPresentError", "4246":"shipMountNoShipyardError", "4247":"shipMissingMountError", "4248":"shipMountInsufficientCreditsError", "4249":"shipMissingPowerError", "4250":"shipMissingSlotsError", "4251":"shipMissingMountsError", "4252":"shipMissingCrewError", "4253":"shipExtractDestabilizedError", "4254":"shipJumpInvalidOriginError", "4255":"shipJumpInvalidWaypointError", "4256":"shipJumpOriginUnderConstructionError", "4257":"shipMissingGasProcessorError", "4258":"shipMissingGasSiphonsError", "4259":"shipSiphonInvalidWaypointError", "4260":"shipSiphonPermissionError", "4261":"waypointNoYieldError", "4262":"shipJumpDestinationUnderConstructionError", "4500":"acceptContractNotAuthorizedError", "4501":"acceptContractConflictError", "4502":"fulfillContractDeliveryError", "4503":"contractDeadlineError", "4504":"contractFulfilledError", "4505":"contractNotAcceptedError", "4506":"contractNotAuthorizedError", "4508":"shipDeliverTermsError", "4509":"shipDeliverFulfilledError", "4510":"shipDeliverInvalidLocationError", "4511":"existingContractError", "4600":"marketTradeInsufficientCreditsError", "4601":"marketTradeNoPurchaseError", "4602":"marketTradeNotSoldError", "4603":"marketNotFoundError", "4604":"marketTradeUnitLimitError", "4700":"waypointNoFactionError", "4800":"constructionMaterialNotRequired", "4801":"constructionMaterialFulfilled", "4802":"shipConstructionInvalidLocationError" }, bpmn_error_code: get or else(get value(error_code_by_name, error_code), error_code), error_data: {error_code: error_code, error_message: error_message, error_name: bpmn_error_code}, bpmnError: bpmnError(bpmn_error_code, error_message, error_data) }.bpmnError else null" />
<zeebe:header key="retryBackoff" value="PT1S" />
</zeebe:taskHeaders>
<zeebe:properties>
<zeebe:property name="custom_error_handling" value="by_error_name" />
</zeebe:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1frktj9</bpmn:incoming>
<bpmn:outgoing>Flow_101jh8q</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Activity_1761aa0" name="List ships" zeebe:modelerTemplate="com.camunda.SpaceTradersApi" zeebe:modelerTemplateVersion="5" zeebe:modelerTemplateIcon="data:image/png;base64,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">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda:http-json:1" retries="10" />
<zeebe:ioMapping>
<zeebe:input source="placeholder" target="objects" />
<zeebe:input source="1" target="objects.getMyShips_page" />
<zeebe:input source="10" target="objects.getMyShips_limit" />
<zeebe:input source="bearer" target="authentication.type" />
<zeebe:input source="=token" target="authentication.token" />
<zeebe:input source="get" target="method" />
<zeebe:input source="="https://api.spacetraders.io/v2/my/ships"" target="url" />
<zeebe:input source="={ "page": objects.getMyShips_page, "limit": objects.getMyShips_limit }" target="queryParameters" />
</zeebe:ioMapping>
<zeebe:taskHeaders>
<zeebe:header key="category" value="fleet" />
<zeebe:header key="operation" value="getMyShips" />
<zeebe:header key="resultExpression" value="={ "ships": response.body.data, "meta": response.body.meta, "ship_details": for ship in ships return { symbol: ship.symbol, type: ship.registration.role, cargo: ship.cargo.units / ship.cargo.capacity, fuel: ship.fuel.current / ship.fuel.capacity, status: ship.nav.status, system: ship.nav.systemSymbol, waypoint: ship.nav.waypointSymbol } }" />
<zeebe:header key="errorExpression" value="=if matches(error.code, "4\d\d") then { error_code: substring after(extract(error.message,"\"code\":\d{4}")[1], ":"), error_message: substring(extract(error.message, "\"message\":\"(\w|\d|\s|\.|\-)+")[1], 12), error_code_by_name: { "4000":"cooldownConflictError", "4001":"waypointNoAccessError", "4100":"tokenEmptyError", "4101":"tokenMissingSubjectError", "4102":"tokenInvalidSubjectError", "4103":"missingTokenRequestError", "4104":"invalidTokenRequestError", "4105":"invalidTokenSubjectError", "4106":"accountNotExistsError", "4107":"agentNotExistsError", "4108":"accountHasNoAgentError", "4109":"registerAgentExistsError", "4110":"registerAgentSymbolReservedError", "4111":"registerAgentConflictSymbolError", "4200":"navigateInTransitError", "4201":"navigateInvalidDestinationError", "4202":"navigateOutsideSystemError", "4203":"navigateInsufficientFuelError", "4204":"navigateSameDestinationError", "4205":"shipExtractInvalidWaypointError", "4206":"shipExtractPermissionError", "4207":"shipJumpNoSystemError", "4208":"shipJumpSameSystemError", "4210":"shipJumpMissingModuleError", "4211":"shipJumpNoValidWaypointError", "4212":"shipJumpMissingAntimatterError", "4214":"shipInTransitError", "4215":"shipMissingSensorArraysError", "4216":"purchaseShipCreditsError", "4217":"shipCargoExceedsLimitError", "4218":"shipCargoMissingError", "4219":"shipCargoUnitCountError", "4220":"shipSurveyVerificationError", "4221":"shipSurveyExpirationError", "4222":"shipSurveyWaypointTypeError", "4223":"shipSurveyOrbitError", "4224":"shipSurveyExhaustedError", "4225":"shipRefuelDockedError", "4226":"shipRefuelInvalidWaypointError", "4227":"shipMissingMountsError", "4228":"shipCargoFullError", "4229":"shipJumpFromGateToGateError", "4230":"waypointChartedError", "4231":"shipTransferShipNotFound", "4232":"shipTransferAgentConflict", "4233":"shipTransferSameShipConflict", "4234":"shipTransferLocationConflict", "4235":"warpInsideSystemError", "4236":"shipNotInOrbitError", "4237":"shipInvalidRefineryGoodError", "4238":"shipInvalidRefineryTypeError", "4239":"shipMissingRefineryError", "4240":"shipMissingSurveyorError", "4241":"shipMissingWarpDriveError", "4242":"shipMissingMineralProcessorError", "4243":"shipMissingMiningLasersError", "4244":"shipNotDockedError", "4245":"purchaseShipNotPresentError", "4246":"shipMountNoShipyardError", "4247":"shipMissingMountError", "4248":"shipMountInsufficientCreditsError", "4249":"shipMissingPowerError", "4250":"shipMissingSlotsError", "4251":"shipMissingMountsError", "4252":"shipMissingCrewError", "4253":"shipExtractDestabilizedError", "4254":"shipJumpInvalidOriginError", "4255":"shipJumpInvalidWaypointError", "4256":"shipJumpOriginUnderConstructionError", "4257":"shipMissingGasProcessorError", "4258":"shipMissingGasSiphonsError", "4259":"shipSiphonInvalidWaypointError", "4260":"shipSiphonPermissionError", "4261":"waypointNoYieldError", "4262":"shipJumpDestinationUnderConstructionError", "4500":"acceptContractNotAuthorizedError", "4501":"acceptContractConflictError", "4502":"fulfillContractDeliveryError", "4503":"contractDeadlineError", "4504":"contractFulfilledError", "4505":"contractNotAcceptedError", "4506":"contractNotAuthorizedError", "4508":"shipDeliverTermsError", "4509":"shipDeliverFulfilledError", "4510":"shipDeliverInvalidLocationError", "4511":"existingContractError", "4600":"marketTradeInsufficientCreditsError", "4601":"marketTradeNoPurchaseError", "4602":"marketTradeNotSoldError", "4603":"marketNotFoundError", "4604":"marketTradeUnitLimitError", "4700":"waypointNoFactionError", "4800":"constructionMaterialNotRequired", "4801":"constructionMaterialFulfilled", "4802":"shipConstructionInvalidLocationError" }, bpmn_error_code: get or else(get value(error_code_by_name, error_code), error_code), error_data: {error_code: error_code, error_message: error_message, error_name: bpmn_error_code}, bpmnError: bpmnError(bpmn_error_code, error_message, error_data) }.bpmnError else null" />
<zeebe:header key="retryBackoff" value="PT1S" />
</zeebe:taskHeaders>
<zeebe:properties>
<zeebe:property name="custom_error_handling" value="by_error_name" />
</zeebe:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_101jh8q</bpmn:incoming>
<bpmn:outgoing>Flow_0a80yck</bpmn:outgoing>
</bpmn:serviceTask>
</bpmn:subProcess>
<bpmn:serviceTask id="Activity_0dghdma" name="Get server status" zeebe:modelerTemplate="com.camunda.SpaceTradersApi" zeebe:modelerTemplateVersion="5" zeebe:modelerTemplateIcon="data:image/png;base64,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">
<bpmn:extensionElements>
<zeebe:taskDefinition type="io.camunda:http-json:1" retries="10" />
<zeebe:ioMapping>
<zeebe:input source="placeholder" target="objects" />
<zeebe:input source="noAuth" target="authentication.type" />
<zeebe:input source="get" target="method" />
<zeebe:input source="="https://api.spacetraders.io/v2/"" target="url" />
<zeebe:input source="={ }" target="queryParameters" />
</zeebe:ioMapping>
<zeebe:taskHeaders>
<zeebe:header key="category" value="game" />
<zeebe:header key="operation" value="getStatus" />
<zeebe:header key="resultExpression" value="={"status": response.body.status, "version": response.body.version, "resetDate": response.body.resetDate, "description": response.body.description, "stats": response.body.stats, "leaderboards": response.body.leaderboards, "serverResets": response.body.serverResets, "announcements": response.body.announcements, "links": response.body.links}" />
<zeebe:header key="errorExpression" value="=if matches(error.code, "4\d\d") then { error_code: substring after(extract(error.message,"\"code\":\d{4}")[1], ":"), error_message: substring(extract(error.message, "\"message\":\"(\w|\d|\s|\.|\-)+")[1], 12), error_code_by_name: { "4000":"cooldownConflictError", "4001":"waypointNoAccessError", "4100":"tokenEmptyError", "4101":"tokenMissingSubjectError", "4102":"tokenInvalidSubjectError", "4103":"missingTokenRequestError", "4104":"invalidTokenRequestError", "4105":"invalidTokenSubjectError", "4106":"accountNotExistsError", "4107":"agentNotExistsError", "4108":"accountHasNoAgentError", "4109":"registerAgentExistsError", "4110":"registerAgentSymbolReservedError", "4111":"registerAgentConflictSymbolError", "4200":"navigateInTransitError", "4201":"navigateInvalidDestinationError", "4202":"navigateOutsideSystemError", "4203":"navigateInsufficientFuelError", "4204":"navigateSameDestinationError", "4205":"shipExtractInvalidWaypointError", "4206":"shipExtractPermissionError", "4207":"shipJumpNoSystemError", "4208":"shipJumpSameSystemError", "4210":"shipJumpMissingModuleError", "4211":"shipJumpNoValidWaypointError", "4212":"shipJumpMissingAntimatterError", "4214":"shipInTransitError", "4215":"shipMissingSensorArraysError", "4216":"purchaseShipCreditsError", "4217":"shipCargoExceedsLimitError", "4218":"shipCargoMissingError", "4219":"shipCargoUnitCountError", "4220":"shipSurveyVerificationError", "4221":"shipSurveyExpirationError", "4222":"shipSurveyWaypointTypeError", "4223":"shipSurveyOrbitError", "4224":"shipSurveyExhaustedError", "4225":"shipRefuelDockedError", "4226":"shipRefuelInvalidWaypointError", "4227":"shipMissingMountsError", "4228":"shipCargoFullError", "4229":"shipJumpFromGateToGateError", "4230":"waypointChartedError", "4231":"shipTransferShipNotFound", "4232":"shipTransferAgentConflict", "4233":"shipTransferSameShipConflict", "4234":"shipTransferLocationConflict", "4235":"warpInsideSystemError", "4236":"shipNotInOrbitError", "4237":"shipInvalidRefineryGoodError", "4238":"shipInvalidRefineryTypeError", "4239":"shipMissingRefineryError", "4240":"shipMissingSurveyorError", "4241":"shipMissingWarpDriveError", "4242":"shipMissingMineralProcessorError", "4243":"shipMissingMiningLasersError", "4244":"shipNotDockedError", "4245":"purchaseShipNotPresentError", "4246":"shipMountNoShipyardError", "4247":"shipMissingMountError", "4248":"shipMountInsufficientCreditsError", "4249":"shipMissingPowerError", "4250":"shipMissingSlotsError", "4251":"shipMissingMountsError", "4252":"shipMissingCrewError", "4253":"shipExtractDestabilizedError", "4254":"shipJumpInvalidOriginError", "4255":"shipJumpInvalidWaypointError", "4256":"shipJumpOriginUnderConstructionError", "4257":"shipMissingGasProcessorError", "4258":"shipMissingGasSiphonsError", "4259":"shipSiphonInvalidWaypointError", "4260":"shipSiphonPermissionError", "4261":"waypointNoYieldError", "4262":"shipJumpDestinationUnderConstructionError", "4500":"acceptContractNotAuthorizedError", "4501":"acceptContractConflictError", "4502":"fulfillContractDeliveryError", "4503":"contractDeadlineError", "4504":"contractFulfilledError", "4505":"contractNotAcceptedError", "4506":"contractNotAuthorizedError", "4508":"shipDeliverTermsError", "4509":"shipDeliverFulfilledError", "4510":"shipDeliverInvalidLocationError", "4511":"existingContractError", "4600":"marketTradeInsufficientCreditsError", "4601":"marketTradeNoPurchaseError", "4602":"marketTradeNotSoldError", "4603":"marketNotFoundError", "4604":"marketTradeUnitLimitError", "4700":"waypointNoFactionError", "4800":"constructionMaterialNotRequired", "4801":"constructionMaterialFulfilled", "4802":"shipConstructionInvalidLocationError" }, bpmn_error_code: get or else(get value(error_code_by_name, error_code), error_code), error_data: {error_code: error_code, error_message: error_message, error_name: bpmn_error_code}, bpmnError: bpmnError(bpmn_error_code, error_message, error_data) }.bpmnError else null" />
<zeebe:header key="retryBackoff" value="PT1S" />
</zeebe:taskHeaders>
<zeebe:properties>
<zeebe:property name="custom_error_handling" value="by_error_name" />
</zeebe:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_08ojg0k</bpmn:incoming>
<bpmn:outgoing>Flow_0lp9i5p</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:subProcess id="Activity_18yoh5d" name="Handle invalid token" triggeredByEvent="true">
<bpmn:startEvent id="Event_1qzevll" name="Invalid token">
<bpmn:outgoing>Flow_0282cl4</bpmn:outgoing>
<bpmn:errorEventDefinition id="ErrorEventDefinition_0yw9cf5" errorRef="Error_1mvvvmr" />
</bpmn:startEvent>
<bpmn:endEvent id="Event_0pgaz7c" name="Cancel">
<bpmn:incoming>Flow_0282cl4</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0282cl4" sourceRef="Event_1qzevll" targetRef="Event_0pgaz7c" />
</bpmn:subProcess>
</bpmn:process>
<bpmn:error id="Error_1mvvvmr" name="tokenEmptyError" errorCode="tokenEmptyError" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="space-traders-monitor-status">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="160" y="100" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_16did33_di" bpmnElement="Event_0ynrge1">
<dc:Bounds x="432" y="100" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="422" y="143" width="57" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1wb8x3q_di" bpmnElement="Event_1wb8x3q">
<dc:Bounds x="542" y="100" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1cjaws6_di" bpmnElement="Activity_14c5r5q" isExpanded="true">
<dc:Bounds x="160" y="210" width="1020" height="200" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0l98cof_di" bpmnElement="Event_0q8779i">
<dc:Bounds x="200" y="292" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="178" y="335" width="81" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_16g6lga_di" bpmnElement="Activity_13sz1z9">
<dc:Bounds x="770" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pyffyf_di" bpmnElement="Activity_071wpfg">
<dc:Bounds x="930" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0aa5vd4_di" bpmnElement="Event_0aa5vd4">
<dc:Bounds x="1092" y="292" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tzsjba_di" bpmnElement="Activity_0qjbx34">
<dc:Bounds x="290" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1mx9viq_di" bpmnElement="Activity_15t5ybd">
<dc:Bounds x="450" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0pgw7a5_di" bpmnElement="Activity_1761aa0">
<dc:Bounds x="610" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1fxtdco_di" bpmnElement="Flow_1fxtdco">
<di:waypoint x="236" y="310" />
<di:waypoint x="290" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1frktj9_di" bpmnElement="Flow_1frktj9">
<di:waypoint x="390" y="310" />
<di:waypoint x="450" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_101jh8q_di" bpmnElement="Flow_101jh8q">
<di:waypoint x="550" y="310" />
<di:waypoint x="610" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0a80yck_di" bpmnElement="Flow_0a80yck">
<di:waypoint x="710" y="310" />
<di:waypoint x="770" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bn2vxz_di" bpmnElement="Flow_0bn2vxz">
<di:waypoint x="870" y="310" />
<di:waypoint x="930" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xwe1b3_di" bpmnElement="Flow_1xwe1b3">
<di:waypoint x="1030" y="310" />
<di:waypoint x="1092" y="310" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1eiw1l4_di" bpmnElement="Activity_0dghdma">
<dc:Bounds x="260" y="78" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_16dbgp1_di" bpmnElement="Activity_18yoh5d" isExpanded="true">
<dc:Bounds x="160" y="430" width="350" height="150" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_09d83px_di" bpmnElement="Event_1qzevll">
<dc:Bounds x="200" y="482" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="187" y="525" width="62" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0pgaz7c_di" bpmnElement="Event_0pgaz7c">
<dc:Bounds x="332" y="482" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="333" y="525" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0282cl4_di" bpmnElement="Flow_0282cl4">
<di:waypoint x="236" y="500" />
<di:waypoint x="332" y="500" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_08ojg0k_di" bpmnElement="Flow_08ojg0k">
<di:waypoint x="196" y="118" />
<di:waypoint x="260" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0lp9i5p_di" bpmnElement="Flow_0lp9i5p">
<di:waypoint x="360" y="118" />
<di:waypoint x="432" y="118" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yf03dd_di" bpmnElement="Flow_1yf03dd">
<di:waypoint x="468" y="118" />
<di:waypoint x="542" y="118" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>