@oasisomniverse/web5-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +250 -0
- package/docs/README.md +44 -0
- package/docs/modules/Avatar.md +606 -0
- package/docs/modules/CelestialBodies.md +1051 -0
- package/docs/modules/CelestialBodiesMetaData.md +949 -0
- package/docs/modules/CelestialSpaces.md +1051 -0
- package/docs/modules/Chapters.md +955 -0
- package/docs/modules/Competition.md +594 -0
- package/docs/modules/Cosmic.md +3653 -0
- package/docs/modules/Games.md +2619 -0
- package/docs/modules/GeoHotSpots.md +1027 -0
- package/docs/modules/GeoNFTs.md +1049 -0
- package/docs/modules/Health.md +90 -0
- package/docs/modules/Holons.md +1139 -0
- package/docs/modules/HolonsMetaData.md +949 -0
- package/docs/modules/InventoryItems.md +1071 -0
- package/docs/modules/Libraries.md +1052 -0
- package/docs/modules/Missions.md +1286 -0
- package/docs/modules/NFTs.md +1008 -0
- package/docs/modules/OAPPs.md +1190 -0
- package/docs/modules/Parks.md +1079 -0
- package/docs/modules/Plugins.md +1138 -0
- package/docs/modules/Quests.md +1941 -0
- package/docs/modules/Runtimes.md +1112 -0
- package/docs/modules/STAR.md +178 -0
- package/docs/modules/Templates.md +990 -0
- package/docs/modules/Zomes.md +1049 -0
- package/docs/modules/ZomesMetaData.md +949 -0
- package/index.d.ts +97 -0
- package/index.js +3 -0
- package/index.mjs +4 -0
- package/package.json +117 -0
- package/src/core/httpClient.js +110 -0
- package/src/core/routeHelper.js +85 -0
- package/src/core/tokenStore.js +52 -0
- package/src/core/types.d.ts +18 -0
- package/src/index.js +60 -0
- package/src/modules/Auth.d.ts +15 -0
- package/src/modules/Auth.js +62 -0
- package/src/modules/Avatar.d.ts +45 -0
- package/src/modules/Avatar.js +47 -0
- package/src/modules/CelestialBodies.d.ts +72 -0
- package/src/modules/CelestialBodies.js +65 -0
- package/src/modules/CelestialBodiesMetaData.d.ts +69 -0
- package/src/modules/CelestialBodiesMetaData.js +61 -0
- package/src/modules/CelestialSpaces.d.ts +72 -0
- package/src/modules/CelestialSpaces.js +65 -0
- package/src/modules/Chapters.d.ts +66 -0
- package/src/modules/Chapters.js +61 -0
- package/src/modules/Competition.d.ts +33 -0
- package/src/modules/Competition.js +39 -0
- package/src/modules/Cosmic.d.ts +222 -0
- package/src/modules/Cosmic.js +165 -0
- package/src/modules/Games.d.ts +171 -0
- package/src/modules/Games.js +131 -0
- package/src/modules/GeoHotSpots.d.ts +66 -0
- package/src/modules/GeoHotSpots.js +61 -0
- package/src/modules/GeoNFTs.d.ts +72 -0
- package/src/modules/GeoNFTs.js +65 -0
- package/src/modules/Health.d.ts +12 -0
- package/src/modules/Health.js +25 -0
- package/src/modules/Holons.d.ts +78 -0
- package/src/modules/Holons.js +69 -0
- package/src/modules/HolonsMetaData.d.ts +69 -0
- package/src/modules/HolonsMetaData.js +61 -0
- package/src/modules/InventoryItems.d.ts +69 -0
- package/src/modules/InventoryItems.js +63 -0
- package/src/modules/Libraries.d.ts +72 -0
- package/src/modules/Libraries.js +65 -0
- package/src/modules/Missions.d.ts +87 -0
- package/src/modules/Missions.js +75 -0
- package/src/modules/NFTs.d.ts +69 -0
- package/src/modules/NFTs.js +63 -0
- package/src/modules/OAPPs.d.ts +69 -0
- package/src/modules/OAPPs.js +61 -0
- package/src/modules/Parks.d.ts +72 -0
- package/src/modules/Parks.js +65 -0
- package/src/modules/Plugins.d.ts +78 -0
- package/src/modules/Plugins.js +69 -0
- package/src/modules/Quests.d.ts +129 -0
- package/src/modules/Quests.js +101 -0
- package/src/modules/Runtimes.d.ts +81 -0
- package/src/modules/Runtimes.js +69 -0
- package/src/modules/STAR.d.ts +18 -0
- package/src/modules/STAR.js +29 -0
- package/src/modules/Templates.d.ts +72 -0
- package/src/modules/Templates.js +63 -0
- package/src/modules/Zomes.d.ts +72 -0
- package/src/modules/Zomes.js +65 -0
- package/src/modules/ZomesMetaData.d.ts +69 -0
- package/src/modules/ZomesMetaData.js +61 -0
- package/src/modules/index.js +67 -0
|
@@ -0,0 +1,1286 @@
|
|
|
1
|
+
# Missions — `star.missions`
|
|
2
|
+
|
|
3
|
+
Source controller: [`MissionsController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/STAR%20ODK/NextGenSoftware.OASIS.STAR.WebAPI/Controllers/MissionsController.cs)
|
|
4
|
+
Route prefix: `api/missions`
|
|
5
|
+
27 operation(s).
|
|
6
|
+
|
|
7
|
+
Every method takes a single args object: any key matching a `{token}` in the route is substituted into the URL; everything else becomes the query string (GET/DELETE) or JSON body (POST/PUT). Every call resolves to the standard OASIS envelope:
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
{
|
|
11
|
+
isError: boolean;
|
|
12
|
+
isWarning: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
errorCode?: string;
|
|
15
|
+
result: T; // see each endpoint's Response section below
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Operations
|
|
20
|
+
|
|
21
|
+
### `activateMission`
|
|
22
|
+
|
|
23
|
+
Activates a mission.
|
|
24
|
+
|
|
25
|
+
**POST** `api/missions/{id}/activate`
|
|
26
|
+
|
|
27
|
+
Route parameters:
|
|
28
|
+
|
|
29
|
+
| Field | Type |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| `id` | `Guid` |
|
|
32
|
+
|
|
33
|
+
**Request**
|
|
34
|
+
|
|
35
|
+
Body fields:
|
|
36
|
+
|
|
37
|
+
| Field | Type |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| `version` | `int (optional)` |
|
|
40
|
+
|
|
41
|
+
**Response**
|
|
42
|
+
|
|
43
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
44
|
+
|
|
45
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
46
|
+
|
|
47
|
+
**Example**
|
|
48
|
+
|
|
49
|
+
```js
|
|
50
|
+
const { isError, message, result } = await star.missions.activateMission({
|
|
51
|
+
id: '<id>',
|
|
52
|
+
version: 1
|
|
53
|
+
});
|
|
54
|
+
if (isError) throw new Error(message);
|
|
55
|
+
console.log(result);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Example response:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"isError": false,
|
|
63
|
+
"message": "",
|
|
64
|
+
"result": null
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### `cloneMission`
|
|
71
|
+
|
|
72
|
+
Clones an existing mission with a new name.
|
|
73
|
+
|
|
74
|
+
**POST** `api/missions/{id}/clone`
|
|
75
|
+
|
|
76
|
+
Route parameters:
|
|
77
|
+
|
|
78
|
+
| Field | Type |
|
|
79
|
+
| --- | --- |
|
|
80
|
+
| `id` | `Guid` |
|
|
81
|
+
|
|
82
|
+
**Request**
|
|
83
|
+
|
|
84
|
+
Body type: `CloneRequest`
|
|
85
|
+
|
|
86
|
+
| Field | Type |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| `NewName` | `string` |
|
|
89
|
+
|
|
90
|
+
**Response**
|
|
91
|
+
|
|
92
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
93
|
+
|
|
94
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
95
|
+
|
|
96
|
+
**Example**
|
|
97
|
+
|
|
98
|
+
```js
|
|
99
|
+
const { isError, message, result } = await star.missions.cloneMission({
|
|
100
|
+
id: '<id>',
|
|
101
|
+
newName: "example string"
|
|
102
|
+
});
|
|
103
|
+
if (isError) throw new Error(message);
|
|
104
|
+
console.log(result);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Example response:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"isError": false,
|
|
112
|
+
"message": "",
|
|
113
|
+
"result": null
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### `completeMission`
|
|
120
|
+
|
|
121
|
+
Completes a mission for the authenticated avatar.
|
|
122
|
+
|
|
123
|
+
**POST** `api/missions/{id}/complete`
|
|
124
|
+
|
|
125
|
+
Route parameters:
|
|
126
|
+
|
|
127
|
+
| Field | Type |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| `id` | `Guid` |
|
|
130
|
+
|
|
131
|
+
**Request**
|
|
132
|
+
|
|
133
|
+
Body fields:
|
|
134
|
+
|
|
135
|
+
| Field | Type |
|
|
136
|
+
| --- | --- |
|
|
137
|
+
| `completionNotes` | `string (optional)` |
|
|
138
|
+
|
|
139
|
+
**Response**
|
|
140
|
+
|
|
141
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
142
|
+
|
|
143
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
144
|
+
|
|
145
|
+
**Example**
|
|
146
|
+
|
|
147
|
+
```js
|
|
148
|
+
const { isError, message, result } = await star.missions.completeMission({
|
|
149
|
+
id: '<id>',
|
|
150
|
+
completionNotes: 'example string'
|
|
151
|
+
});
|
|
152
|
+
if (isError) throw new Error(message);
|
|
153
|
+
console.log(result);
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Example response:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"isError": false,
|
|
161
|
+
"message": "",
|
|
162
|
+
"result": null
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### `createMission`
|
|
169
|
+
|
|
170
|
+
Creates a new mission for the authenticated avatar.
|
|
171
|
+
|
|
172
|
+
**POST** `api/missions`
|
|
173
|
+
|
|
174
|
+
**Request**
|
|
175
|
+
|
|
176
|
+
Body type: `IMission`
|
|
177
|
+
|
|
178
|
+
| Field | Type |
|
|
179
|
+
| --- | --- |
|
|
180
|
+
| `PublishedOn` | `DateTime` |
|
|
181
|
+
| `PublishedByAvatarId` | `Guid` |
|
|
182
|
+
| `PublishedByAvatar` | `IAvatar` |
|
|
183
|
+
| `Quests` | `IList<IQuest>` |
|
|
184
|
+
| `Chapters` | `IList<IChapter>` |
|
|
185
|
+
|
|
186
|
+
**Response**
|
|
187
|
+
|
|
188
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
189
|
+
|
|
190
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
191
|
+
|
|
192
|
+
**Example**
|
|
193
|
+
|
|
194
|
+
```js
|
|
195
|
+
const { isError, message, result } = await star.missions.createMission({
|
|
196
|
+
publishedOn: "2026-01-01T00:00:00Z",
|
|
197
|
+
publishedByAvatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
198
|
+
publishedByAvatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
|
|
199
|
+
quests: [{ "ParentMissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "QuestType": { }, "GeoSpatialNFTIds": ["example string"], "GeoSpatialNFTs": [ /* <IOASISGeoSpatialNFT> */ ], "GeoHotSpotIds": ["example string"], "GeoHotSpots": [{ "TriggerType": { }, "Lat": 1.0, "Long": 1.0, "HotSpotRadiusInMetres": 1, "TimeInSecondsNeedToBeAtLocationToTriggerHotSpot": 1, "TimeInSecondsNeedToLookAt3DObjectOr2DImageToTriggerHotSpot": 1, "Object3D": "<base64-bytes>", "Image2D": "<base64-bytes>", "Rewards": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "AudioData": "<base64-bytes>", "AudioUrl": "example string", "VideoData": "<base64-bytes>", "VideoUrl": "example string", "TextContent": "example string", "WebsiteUrl": "example string" }], "CurrentSubQuest": {}, "CurrentSubQuestNumber": 1 }],
|
|
200
|
+
chapters: [{ "ChapterDisplayName": "example string" }]
|
|
201
|
+
});
|
|
202
|
+
if (isError) throw new Error(message);
|
|
203
|
+
console.log(result);
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Example response:
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"isError": false,
|
|
211
|
+
"message": "",
|
|
212
|
+
"result": null
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
### `createMissionWithOptions`
|
|
219
|
+
|
|
220
|
+
Creates a new mission with specified parameters.
|
|
221
|
+
|
|
222
|
+
**POST** `api/missions/create`
|
|
223
|
+
|
|
224
|
+
**Request**
|
|
225
|
+
|
|
226
|
+
Body type: `CreateMissionRequest`
|
|
227
|
+
|
|
228
|
+
| Field | Type |
|
|
229
|
+
| --- | --- |
|
|
230
|
+
| `Name` | `string` |
|
|
231
|
+
| `Description` | `string` |
|
|
232
|
+
| `HolonSubType` | `HolonType` |
|
|
233
|
+
| `SourceFolderPath` | `string` |
|
|
234
|
+
| `CreateOptions` | `ISTARNETCreateOptions<Mission, STARNETDNA>` |
|
|
235
|
+
|
|
236
|
+
**Response**
|
|
237
|
+
|
|
238
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
239
|
+
|
|
240
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
241
|
+
|
|
242
|
+
**Example**
|
|
243
|
+
|
|
244
|
+
```js
|
|
245
|
+
const { isError, message, result } = await star.missions.createMissionWithOptions({
|
|
246
|
+
name: "example string",
|
|
247
|
+
description: "example string",
|
|
248
|
+
holonSubType: { },
|
|
249
|
+
sourceFolderPath: "example string",
|
|
250
|
+
createOptions: { "STARNETHolon": /* <T1> */, "STARNETDNA": /* <T2> */, "MetaTagMappings": { "MetaHolonTags": [{ "HolonName": "example string", "HolonType": { }, "NodeName": "example string", "NodeType": { "Score": 1.0 }, "MetaTag": "example string" }], "MetaTags": { "<string>": "example string" } }, "CheckIfSourcePathExists": true, "CustomCreateParams": { "<string>": {} } }
|
|
251
|
+
});
|
|
252
|
+
if (isError) throw new Error(message);
|
|
253
|
+
console.log(result);
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Example response:
|
|
257
|
+
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"isError": false,
|
|
261
|
+
"message": "",
|
|
262
|
+
"result": null
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
### `deactivateMission`
|
|
269
|
+
|
|
270
|
+
Deactivates a mission.
|
|
271
|
+
|
|
272
|
+
**POST** `api/missions/{id}/deactivate`
|
|
273
|
+
|
|
274
|
+
Route parameters:
|
|
275
|
+
|
|
276
|
+
| Field | Type |
|
|
277
|
+
| --- | --- |
|
|
278
|
+
| `id` | `Guid` |
|
|
279
|
+
|
|
280
|
+
**Request**
|
|
281
|
+
|
|
282
|
+
Body fields:
|
|
283
|
+
|
|
284
|
+
| Field | Type |
|
|
285
|
+
| --- | --- |
|
|
286
|
+
| `version` | `int (optional)` |
|
|
287
|
+
|
|
288
|
+
**Response**
|
|
289
|
+
|
|
290
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
291
|
+
|
|
292
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
293
|
+
|
|
294
|
+
**Example**
|
|
295
|
+
|
|
296
|
+
```js
|
|
297
|
+
const { isError, message, result } = await star.missions.deactivateMission({
|
|
298
|
+
id: '<id>',
|
|
299
|
+
version: 1
|
|
300
|
+
});
|
|
301
|
+
if (isError) throw new Error(message);
|
|
302
|
+
console.log(result);
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Example response:
|
|
306
|
+
|
|
307
|
+
```json
|
|
308
|
+
{
|
|
309
|
+
"isError": false,
|
|
310
|
+
"message": "",
|
|
311
|
+
"result": null
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### `deleteMission`
|
|
318
|
+
|
|
319
|
+
Deletes a mission by its unique identifier.
|
|
320
|
+
|
|
321
|
+
**DELETE** `api/missions/{id}`
|
|
322
|
+
|
|
323
|
+
Route parameters:
|
|
324
|
+
|
|
325
|
+
| Field | Type |
|
|
326
|
+
| --- | --- |
|
|
327
|
+
| `id` | `Guid` |
|
|
328
|
+
|
|
329
|
+
**Request**
|
|
330
|
+
|
|
331
|
+
No request body.
|
|
332
|
+
|
|
333
|
+
**Response**
|
|
334
|
+
|
|
335
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
336
|
+
|
|
337
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
338
|
+
|
|
339
|
+
**Example**
|
|
340
|
+
|
|
341
|
+
```js
|
|
342
|
+
const { isError, message, result } = await star.missions.deleteMission({
|
|
343
|
+
id: '<id>'
|
|
344
|
+
});
|
|
345
|
+
if (isError) throw new Error(message);
|
|
346
|
+
console.log(result);
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Example response:
|
|
350
|
+
|
|
351
|
+
```json
|
|
352
|
+
{
|
|
353
|
+
"isError": false,
|
|
354
|
+
"message": "",
|
|
355
|
+
"result": null
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
### `downloadMission`
|
|
362
|
+
|
|
363
|
+
Downloads a mission from the STARNET system.
|
|
364
|
+
|
|
365
|
+
**POST** `api/missions/{id}/download`
|
|
366
|
+
|
|
367
|
+
Route parameters:
|
|
368
|
+
|
|
369
|
+
| Field | Type |
|
|
370
|
+
| --- | --- |
|
|
371
|
+
| `id` | `Guid` |
|
|
372
|
+
|
|
373
|
+
**Request**
|
|
374
|
+
|
|
375
|
+
Body fields:
|
|
376
|
+
|
|
377
|
+
| Field | Type |
|
|
378
|
+
| --- | --- |
|
|
379
|
+
| `version` | `int (optional)` |
|
|
380
|
+
| `downloadPath` | `string (optional)` |
|
|
381
|
+
| `reInstall` | `bool (optional)` |
|
|
382
|
+
|
|
383
|
+
**Response**
|
|
384
|
+
|
|
385
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
386
|
+
|
|
387
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
388
|
+
|
|
389
|
+
**Example**
|
|
390
|
+
|
|
391
|
+
```js
|
|
392
|
+
const { isError, message, result } = await star.missions.downloadMission({
|
|
393
|
+
id: '<id>',
|
|
394
|
+
version: 1,
|
|
395
|
+
downloadPath: 'example string',
|
|
396
|
+
reInstall: true
|
|
397
|
+
});
|
|
398
|
+
if (isError) throw new Error(message);
|
|
399
|
+
console.log(result);
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Example response:
|
|
403
|
+
|
|
404
|
+
```json
|
|
405
|
+
{
|
|
406
|
+
"isError": false,
|
|
407
|
+
"message": "",
|
|
408
|
+
"result": null
|
|
409
|
+
}
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
### `editMission`
|
|
415
|
+
|
|
416
|
+
Edits a mission with new DNA configuration.
|
|
417
|
+
|
|
418
|
+
**POST** `api/missions/{id}/edit`
|
|
419
|
+
|
|
420
|
+
Route parameters:
|
|
421
|
+
|
|
422
|
+
| Field | Type |
|
|
423
|
+
| --- | --- |
|
|
424
|
+
| `id` | `Guid` |
|
|
425
|
+
|
|
426
|
+
**Request**
|
|
427
|
+
|
|
428
|
+
Body type: `EditMissionRequest`
|
|
429
|
+
|
|
430
|
+
| Field | Type |
|
|
431
|
+
| --- | --- |
|
|
432
|
+
| `NewDNA` | `STARNETDNA` |
|
|
433
|
+
|
|
434
|
+
**Response**
|
|
435
|
+
|
|
436
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
437
|
+
|
|
438
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
439
|
+
|
|
440
|
+
**Example**
|
|
441
|
+
|
|
442
|
+
```js
|
|
443
|
+
const { isError, message, result } = await star.missions.editMission({
|
|
444
|
+
id: '<id>',
|
|
445
|
+
newDNA: { "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": "example string", "STARNETHolonType": "example string", "STARNETCategory": {}, "STARNETSubCategory": {}, "Dependencies": { "OAPPs": [{ "Type": { }, "HolonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "STARNETHolonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": "example string", "Version": "example string", "VersionSequence": 1, "Install": true, "InstallMode": { }, "InstalledFrom": "example string", "InstalledTo": "example string" }], "Runtimes": [], "Libraries": [], "Templates": [], "NFTs": [], "NFTCollections": [], "GeoNFTs": [], "GeoNFTCollections": [], "GeoHotSpots": [], "Quests": [], "Missions": [], "Chapters": [], "InventoryItems": [], "CelestialSpaces": [], "CelestialBodies": [], "Zomes": [], "Holons": [], "CelestialBodiesMetaDataDNA": [], "ZomesMetaDataDNA": [], "HolonsMetaDataDNA": [] }, "MetaData": { "<string>": {} }, "MetaHolonTagMappings": /* <>> */, "MetaTagMappings": { "<string>": "example string" }, "CreatedByAvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "CreatedByAvatarUsername": "example string", "CreatedOn": "2026-01-01T00:00:00Z", "SourcePath": "example string", "PublishedPath": "example string", "PublishedByAvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "PublishedByAvatarUsername": "example string", "PublishedOn": "2026-01-01T00:00:00Z", "LaunchTarget": "example string", "ModifiedByAvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ModifiedByAvatarUsername": "example string", "ModifiedOn": "2026-01-01T00:00:00Z", "PublishedOnSTARNET": true, "PublishedToCloud": true, "PublishedToPinata": true, "PinataIPFSHash": "example string", "PublishedProviderType": "example string", "FileSize": 1, "Version": "example string", "OASISRuntimeVersion": "example string", "OASISAPIVersion": "example string", "COSMICVersion": "example string", "STARRuntimeVersion": "example string", "STARODKVersion": "example string", "STARAPIVersion": "example string", "STARNETVersion": "example string", "DotNetVersion": "example string", "VersionSequence": 1, "Downloads": 1, "Installs": 1, "TotalDownloads": 1, "TotalInstalls": 1, "NumberOfVersions": 1 }
|
|
446
|
+
});
|
|
447
|
+
if (isError) throw new Error(message);
|
|
448
|
+
console.log(result);
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
Example response:
|
|
452
|
+
|
|
453
|
+
```json
|
|
454
|
+
{
|
|
455
|
+
"isError": false,
|
|
456
|
+
"message": "",
|
|
457
|
+
"result": null
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
### `getAllMissions`
|
|
464
|
+
|
|
465
|
+
Retrieves all missions in the system.
|
|
466
|
+
|
|
467
|
+
**GET** `api/missions`
|
|
468
|
+
|
|
469
|
+
**Request**
|
|
470
|
+
|
|
471
|
+
No request body.
|
|
472
|
+
|
|
473
|
+
**Response**
|
|
474
|
+
|
|
475
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
476
|
+
|
|
477
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
478
|
+
|
|
479
|
+
**Example**
|
|
480
|
+
|
|
481
|
+
```js
|
|
482
|
+
const { isError, message, result } = await star.missions.getAllMissions({});
|
|
483
|
+
if (isError) throw new Error(message);
|
|
484
|
+
console.log(result);
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
Example response:
|
|
488
|
+
|
|
489
|
+
```json
|
|
490
|
+
{
|
|
491
|
+
"isError": false,
|
|
492
|
+
"message": "",
|
|
493
|
+
"result": null
|
|
494
|
+
}
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
---
|
|
498
|
+
|
|
499
|
+
### `getMission`
|
|
500
|
+
|
|
501
|
+
Retrieves a specific mission by its unique identifier.
|
|
502
|
+
|
|
503
|
+
**GET** `api/missions/{id}`
|
|
504
|
+
|
|
505
|
+
Route parameters:
|
|
506
|
+
|
|
507
|
+
| Field | Type |
|
|
508
|
+
| --- | --- |
|
|
509
|
+
| `id` | `Guid` |
|
|
510
|
+
|
|
511
|
+
**Request**
|
|
512
|
+
|
|
513
|
+
No request body.
|
|
514
|
+
|
|
515
|
+
**Response**
|
|
516
|
+
|
|
517
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
518
|
+
|
|
519
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
520
|
+
|
|
521
|
+
**Example**
|
|
522
|
+
|
|
523
|
+
```js
|
|
524
|
+
const { isError, message, result } = await star.missions.getMission({
|
|
525
|
+
id: '<id>'
|
|
526
|
+
});
|
|
527
|
+
if (isError) throw new Error(message);
|
|
528
|
+
console.log(result);
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
Example response:
|
|
532
|
+
|
|
533
|
+
```json
|
|
534
|
+
{
|
|
535
|
+
"isError": false,
|
|
536
|
+
"message": "",
|
|
537
|
+
"result": null
|
|
538
|
+
}
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
### `getMissionLeaderboard`
|
|
544
|
+
|
|
545
|
+
Gets mission leaderboard for a specific mission.
|
|
546
|
+
|
|
547
|
+
**GET** `api/missions/{id}/leaderboard`
|
|
548
|
+
|
|
549
|
+
Route parameters:
|
|
550
|
+
|
|
551
|
+
| Field | Type |
|
|
552
|
+
| --- | --- |
|
|
553
|
+
| `id` | `Guid` |
|
|
554
|
+
|
|
555
|
+
**Request**
|
|
556
|
+
|
|
557
|
+
Query parameters:
|
|
558
|
+
|
|
559
|
+
| Field | Type |
|
|
560
|
+
| --- | --- |
|
|
561
|
+
| `limit` | `int (optional)` |
|
|
562
|
+
|
|
563
|
+
**Response**
|
|
564
|
+
|
|
565
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
566
|
+
|
|
567
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
568
|
+
|
|
569
|
+
**Example**
|
|
570
|
+
|
|
571
|
+
```js
|
|
572
|
+
const { isError, message, result } = await star.missions.getMissionLeaderboard({
|
|
573
|
+
id: '<id>',
|
|
574
|
+
limit: 1
|
|
575
|
+
});
|
|
576
|
+
if (isError) throw new Error(message);
|
|
577
|
+
console.log(result);
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
Example response:
|
|
581
|
+
|
|
582
|
+
```json
|
|
583
|
+
{
|
|
584
|
+
"isError": false,
|
|
585
|
+
"message": "",
|
|
586
|
+
"result": null
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
### `getMissionRewards`
|
|
593
|
+
|
|
594
|
+
Gets mission rewards for a specific mission.
|
|
595
|
+
|
|
596
|
+
**GET** `api/missions/{id}/rewards`
|
|
597
|
+
|
|
598
|
+
Route parameters:
|
|
599
|
+
|
|
600
|
+
| Field | Type |
|
|
601
|
+
| --- | --- |
|
|
602
|
+
| `id` | `Guid` |
|
|
603
|
+
|
|
604
|
+
**Request**
|
|
605
|
+
|
|
606
|
+
No request body.
|
|
607
|
+
|
|
608
|
+
**Response**
|
|
609
|
+
|
|
610
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
611
|
+
|
|
612
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
613
|
+
|
|
614
|
+
**Example**
|
|
615
|
+
|
|
616
|
+
```js
|
|
617
|
+
const { isError, message, result } = await star.missions.getMissionRewards({
|
|
618
|
+
id: '<id>'
|
|
619
|
+
});
|
|
620
|
+
if (isError) throw new Error(message);
|
|
621
|
+
console.log(result);
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
Example response:
|
|
625
|
+
|
|
626
|
+
```json
|
|
627
|
+
{
|
|
628
|
+
"isError": false,
|
|
629
|
+
"message": "",
|
|
630
|
+
"result": null
|
|
631
|
+
}
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
### `getMissionStats`
|
|
637
|
+
|
|
638
|
+
Gets mission statistics for the authenticated avatar.
|
|
639
|
+
|
|
640
|
+
**GET** `api/missions/stats`
|
|
641
|
+
|
|
642
|
+
**Request**
|
|
643
|
+
|
|
644
|
+
No request body.
|
|
645
|
+
|
|
646
|
+
**Response**
|
|
647
|
+
|
|
648
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
649
|
+
|
|
650
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
651
|
+
|
|
652
|
+
**Example**
|
|
653
|
+
|
|
654
|
+
```js
|
|
655
|
+
const { isError, message, result } = await star.missions.getMissionStats({});
|
|
656
|
+
if (isError) throw new Error(message);
|
|
657
|
+
console.log(result);
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
Example response:
|
|
661
|
+
|
|
662
|
+
```json
|
|
663
|
+
{
|
|
664
|
+
"isError": false,
|
|
665
|
+
"message": "",
|
|
666
|
+
"result": null
|
|
667
|
+
}
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
---
|
|
671
|
+
|
|
672
|
+
### `getMissionVersions`
|
|
673
|
+
|
|
674
|
+
Gets all versions of a specific mission.
|
|
675
|
+
|
|
676
|
+
**GET** `api/missions/{id}/versions`
|
|
677
|
+
|
|
678
|
+
Route parameters:
|
|
679
|
+
|
|
680
|
+
| Field | Type |
|
|
681
|
+
| --- | --- |
|
|
682
|
+
| `id` | `Guid` |
|
|
683
|
+
|
|
684
|
+
**Request**
|
|
685
|
+
|
|
686
|
+
No request body.
|
|
687
|
+
|
|
688
|
+
**Response**
|
|
689
|
+
|
|
690
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
691
|
+
|
|
692
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
693
|
+
|
|
694
|
+
**Example**
|
|
695
|
+
|
|
696
|
+
```js
|
|
697
|
+
const { isError, message, result } = await star.missions.getMissionVersions({
|
|
698
|
+
id: '<id>'
|
|
699
|
+
});
|
|
700
|
+
if (isError) throw new Error(message);
|
|
701
|
+
console.log(result);
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
Example response:
|
|
705
|
+
|
|
706
|
+
```json
|
|
707
|
+
{
|
|
708
|
+
"isError": false,
|
|
709
|
+
"message": "",
|
|
710
|
+
"result": null
|
|
711
|
+
}
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
### `getMissionsByStatus`
|
|
717
|
+
|
|
718
|
+
Retrieves missions by status.
|
|
719
|
+
|
|
720
|
+
**GET** `api/missions/by-status/{status}`
|
|
721
|
+
|
|
722
|
+
Route parameters:
|
|
723
|
+
|
|
724
|
+
| Field | Type |
|
|
725
|
+
| --- | --- |
|
|
726
|
+
| `status` | `string` |
|
|
727
|
+
|
|
728
|
+
**Request**
|
|
729
|
+
|
|
730
|
+
No request body.
|
|
731
|
+
|
|
732
|
+
**Response**
|
|
733
|
+
|
|
734
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
735
|
+
|
|
736
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
737
|
+
|
|
738
|
+
**Example**
|
|
739
|
+
|
|
740
|
+
```js
|
|
741
|
+
const { isError, message, result } = await star.missions.getMissionsByStatus({
|
|
742
|
+
status: '<status>'
|
|
743
|
+
});
|
|
744
|
+
if (isError) throw new Error(message);
|
|
745
|
+
console.log(result);
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
Example response:
|
|
749
|
+
|
|
750
|
+
```json
|
|
751
|
+
{
|
|
752
|
+
"isError": false,
|
|
753
|
+
"message": "",
|
|
754
|
+
"result": null
|
|
755
|
+
}
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
### `getMissionsByType`
|
|
761
|
+
|
|
762
|
+
Retrieves missions by a specific type.
|
|
763
|
+
|
|
764
|
+
**GET** `api/missions/by-type/{type}`
|
|
765
|
+
|
|
766
|
+
Route parameters:
|
|
767
|
+
|
|
768
|
+
| Field | Type |
|
|
769
|
+
| --- | --- |
|
|
770
|
+
| `type` | `string` |
|
|
771
|
+
|
|
772
|
+
**Request**
|
|
773
|
+
|
|
774
|
+
No request body.
|
|
775
|
+
|
|
776
|
+
**Response**
|
|
777
|
+
|
|
778
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
779
|
+
|
|
780
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
781
|
+
|
|
782
|
+
**Example**
|
|
783
|
+
|
|
784
|
+
```js
|
|
785
|
+
const { isError, message, result } = await star.missions.getMissionsByType({
|
|
786
|
+
type: '<type>'
|
|
787
|
+
});
|
|
788
|
+
if (isError) throw new Error(message);
|
|
789
|
+
console.log(result);
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
Example response:
|
|
793
|
+
|
|
794
|
+
```json
|
|
795
|
+
{
|
|
796
|
+
"isError": false,
|
|
797
|
+
"message": "",
|
|
798
|
+
"result": null
|
|
799
|
+
}
|
|
800
|
+
```
|
|
801
|
+
|
|
802
|
+
---
|
|
803
|
+
|
|
804
|
+
### `loadAllMissionsForAvatar`
|
|
805
|
+
|
|
806
|
+
Loads all missions for the authenticated avatar.
|
|
807
|
+
|
|
808
|
+
**GET** `api/missions/load-all-for-avatar`
|
|
809
|
+
|
|
810
|
+
**Request**
|
|
811
|
+
|
|
812
|
+
Query parameters:
|
|
813
|
+
|
|
814
|
+
| Field | Type |
|
|
815
|
+
| --- | --- |
|
|
816
|
+
| `showAllVersions` | `bool (optional)` |
|
|
817
|
+
| `version` | `int (optional)` |
|
|
818
|
+
|
|
819
|
+
**Response**
|
|
820
|
+
|
|
821
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
822
|
+
|
|
823
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
824
|
+
|
|
825
|
+
**Example**
|
|
826
|
+
|
|
827
|
+
```js
|
|
828
|
+
const { isError, message, result } = await star.missions.loadAllMissionsForAvatar({
|
|
829
|
+
showAllVersions: true,
|
|
830
|
+
version: 1
|
|
831
|
+
});
|
|
832
|
+
if (isError) throw new Error(message);
|
|
833
|
+
console.log(result);
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
Example response:
|
|
837
|
+
|
|
838
|
+
```json
|
|
839
|
+
{
|
|
840
|
+
"isError": false,
|
|
841
|
+
"message": "",
|
|
842
|
+
"result": null
|
|
843
|
+
}
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
### `loadMission`
|
|
849
|
+
|
|
850
|
+
Loads a mission by ID with optional version and holon type.
|
|
851
|
+
|
|
852
|
+
**GET** `api/missions/{id}/load`
|
|
853
|
+
|
|
854
|
+
Route parameters:
|
|
855
|
+
|
|
856
|
+
| Field | Type |
|
|
857
|
+
| --- | --- |
|
|
858
|
+
| `id` | `Guid` |
|
|
859
|
+
|
|
860
|
+
**Request**
|
|
861
|
+
|
|
862
|
+
Query parameters:
|
|
863
|
+
|
|
864
|
+
| Field | Type |
|
|
865
|
+
| --- | --- |
|
|
866
|
+
| `version` | `int (optional)` |
|
|
867
|
+
| `holonType` | `string (optional)` |
|
|
868
|
+
|
|
869
|
+
**Response**
|
|
870
|
+
|
|
871
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
872
|
+
|
|
873
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
874
|
+
|
|
875
|
+
**Example**
|
|
876
|
+
|
|
877
|
+
```js
|
|
878
|
+
const { isError, message, result } = await star.missions.loadMission({
|
|
879
|
+
id: '<id>',
|
|
880
|
+
version: 1,
|
|
881
|
+
holonType: 'example string'
|
|
882
|
+
});
|
|
883
|
+
if (isError) throw new Error(message);
|
|
884
|
+
console.log(result);
|
|
885
|
+
```
|
|
886
|
+
|
|
887
|
+
Example response:
|
|
888
|
+
|
|
889
|
+
```json
|
|
890
|
+
{
|
|
891
|
+
"isError": false,
|
|
892
|
+
"message": "",
|
|
893
|
+
"result": null
|
|
894
|
+
}
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
899
|
+
### `loadMissionFromPath`
|
|
900
|
+
|
|
901
|
+
Loads a mission from source or installed folder path.
|
|
902
|
+
|
|
903
|
+
**GET** `api/missions/load-from-path`
|
|
904
|
+
|
|
905
|
+
**Request**
|
|
906
|
+
|
|
907
|
+
Query parameters:
|
|
908
|
+
|
|
909
|
+
| Field | Type |
|
|
910
|
+
| --- | --- |
|
|
911
|
+
| `path` | `string` |
|
|
912
|
+
| `holonType` | `string (optional)` |
|
|
913
|
+
|
|
914
|
+
**Response**
|
|
915
|
+
|
|
916
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
917
|
+
|
|
918
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
919
|
+
|
|
920
|
+
**Example**
|
|
921
|
+
|
|
922
|
+
```js
|
|
923
|
+
const { isError, message, result } = await star.missions.loadMissionFromPath({
|
|
924
|
+
path: 'example string',
|
|
925
|
+
holonType: 'example string'
|
|
926
|
+
});
|
|
927
|
+
if (isError) throw new Error(message);
|
|
928
|
+
console.log(result);
|
|
929
|
+
```
|
|
930
|
+
|
|
931
|
+
Example response:
|
|
932
|
+
|
|
933
|
+
```json
|
|
934
|
+
{
|
|
935
|
+
"isError": false,
|
|
936
|
+
"message": "",
|
|
937
|
+
"result": null
|
|
938
|
+
}
|
|
939
|
+
```
|
|
940
|
+
|
|
941
|
+
---
|
|
942
|
+
|
|
943
|
+
### `loadMissionFromPublished`
|
|
944
|
+
|
|
945
|
+
Loads a mission from a published file.
|
|
946
|
+
|
|
947
|
+
**GET** `api/missions/load-from-published`
|
|
948
|
+
|
|
949
|
+
**Request**
|
|
950
|
+
|
|
951
|
+
Query parameters:
|
|
952
|
+
|
|
953
|
+
| Field | Type |
|
|
954
|
+
| --- | --- |
|
|
955
|
+
| `publishedFilePath` | `string` |
|
|
956
|
+
|
|
957
|
+
**Response**
|
|
958
|
+
|
|
959
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
960
|
+
|
|
961
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
962
|
+
|
|
963
|
+
**Example**
|
|
964
|
+
|
|
965
|
+
```js
|
|
966
|
+
const { isError, message, result } = await star.missions.loadMissionFromPublished({
|
|
967
|
+
publishedFilePath: 'example string'
|
|
968
|
+
});
|
|
969
|
+
if (isError) throw new Error(message);
|
|
970
|
+
console.log(result);
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
Example response:
|
|
974
|
+
|
|
975
|
+
```json
|
|
976
|
+
{
|
|
977
|
+
"isError": false,
|
|
978
|
+
"message": "",
|
|
979
|
+
"result": null
|
|
980
|
+
}
|
|
981
|
+
```
|
|
982
|
+
|
|
983
|
+
---
|
|
984
|
+
|
|
985
|
+
### `loadMissionVersion`
|
|
986
|
+
|
|
987
|
+
Loads a specific version of a mission.
|
|
988
|
+
|
|
989
|
+
**GET** `api/missions/{id}/version/{version}`
|
|
990
|
+
|
|
991
|
+
Route parameters:
|
|
992
|
+
|
|
993
|
+
| Field | Type |
|
|
994
|
+
| --- | --- |
|
|
995
|
+
| `id` | `Guid` |
|
|
996
|
+
| `version` | `string` |
|
|
997
|
+
|
|
998
|
+
**Request**
|
|
999
|
+
|
|
1000
|
+
No request body.
|
|
1001
|
+
|
|
1002
|
+
**Response**
|
|
1003
|
+
|
|
1004
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1005
|
+
|
|
1006
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1007
|
+
|
|
1008
|
+
**Example**
|
|
1009
|
+
|
|
1010
|
+
```js
|
|
1011
|
+
const { isError, message, result } = await star.missions.loadMissionVersion({
|
|
1012
|
+
id: '<id>',
|
|
1013
|
+
version: '<version>'
|
|
1014
|
+
});
|
|
1015
|
+
if (isError) throw new Error(message);
|
|
1016
|
+
console.log(result);
|
|
1017
|
+
```
|
|
1018
|
+
|
|
1019
|
+
Example response:
|
|
1020
|
+
|
|
1021
|
+
```json
|
|
1022
|
+
{
|
|
1023
|
+
"isError": false,
|
|
1024
|
+
"message": "",
|
|
1025
|
+
"result": null
|
|
1026
|
+
}
|
|
1027
|
+
```
|
|
1028
|
+
|
|
1029
|
+
---
|
|
1030
|
+
|
|
1031
|
+
### `publishMission`
|
|
1032
|
+
|
|
1033
|
+
Publishes a mission to the STARNET system.
|
|
1034
|
+
|
|
1035
|
+
**POST** `api/missions/{id}/publish`
|
|
1036
|
+
|
|
1037
|
+
Route parameters:
|
|
1038
|
+
|
|
1039
|
+
| Field | Type |
|
|
1040
|
+
| --- | --- |
|
|
1041
|
+
| `id` | `Guid` |
|
|
1042
|
+
|
|
1043
|
+
**Request**
|
|
1044
|
+
|
|
1045
|
+
Body type: `PublishRequest`
|
|
1046
|
+
|
|
1047
|
+
| Field | Type |
|
|
1048
|
+
| --- | --- |
|
|
1049
|
+
| `SourcePath` | `string` |
|
|
1050
|
+
| `LaunchTarget` | `string` |
|
|
1051
|
+
| `PublishPath` | `string` |
|
|
1052
|
+
| `Edit` | `bool` |
|
|
1053
|
+
| `RegisterOnSTARNET` | `bool` |
|
|
1054
|
+
| `GenerateBinary` | `bool` |
|
|
1055
|
+
| `UploadToCloud` | `bool` |
|
|
1056
|
+
|
|
1057
|
+
**Response**
|
|
1058
|
+
|
|
1059
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1060
|
+
|
|
1061
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1062
|
+
|
|
1063
|
+
**Example**
|
|
1064
|
+
|
|
1065
|
+
```js
|
|
1066
|
+
const { isError, message, result } = await star.missions.publishMission({
|
|
1067
|
+
id: '<id>',
|
|
1068
|
+
sourcePath: "example string",
|
|
1069
|
+
launchTarget: "example string",
|
|
1070
|
+
publishPath: "example string",
|
|
1071
|
+
edit: true,
|
|
1072
|
+
registerOnSTARNET: true,
|
|
1073
|
+
generateBinary: true,
|
|
1074
|
+
uploadToCloud: true
|
|
1075
|
+
});
|
|
1076
|
+
if (isError) throw new Error(message);
|
|
1077
|
+
console.log(result);
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
Example response:
|
|
1081
|
+
|
|
1082
|
+
```json
|
|
1083
|
+
{
|
|
1084
|
+
"isError": false,
|
|
1085
|
+
"message": "",
|
|
1086
|
+
"result": null
|
|
1087
|
+
}
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
---
|
|
1091
|
+
|
|
1092
|
+
### `republishMission`
|
|
1093
|
+
|
|
1094
|
+
Republishes a mission to the STARNET system.
|
|
1095
|
+
|
|
1096
|
+
**POST** `api/missions/{id}/republish`
|
|
1097
|
+
|
|
1098
|
+
Route parameters:
|
|
1099
|
+
|
|
1100
|
+
| Field | Type |
|
|
1101
|
+
| --- | --- |
|
|
1102
|
+
| `id` | `Guid` |
|
|
1103
|
+
|
|
1104
|
+
**Request**
|
|
1105
|
+
|
|
1106
|
+
Body fields:
|
|
1107
|
+
|
|
1108
|
+
| Field | Type |
|
|
1109
|
+
| --- | --- |
|
|
1110
|
+
| `version` | `int (optional)` |
|
|
1111
|
+
|
|
1112
|
+
**Response**
|
|
1113
|
+
|
|
1114
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1115
|
+
|
|
1116
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1117
|
+
|
|
1118
|
+
**Example**
|
|
1119
|
+
|
|
1120
|
+
```js
|
|
1121
|
+
const { isError, message, result } = await star.missions.republishMission({
|
|
1122
|
+
id: '<id>',
|
|
1123
|
+
version: 1
|
|
1124
|
+
});
|
|
1125
|
+
if (isError) throw new Error(message);
|
|
1126
|
+
console.log(result);
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
Example response:
|
|
1130
|
+
|
|
1131
|
+
```json
|
|
1132
|
+
{
|
|
1133
|
+
"isError": false,
|
|
1134
|
+
"message": "",
|
|
1135
|
+
"result": null
|
|
1136
|
+
}
|
|
1137
|
+
```
|
|
1138
|
+
|
|
1139
|
+
---
|
|
1140
|
+
|
|
1141
|
+
### `searchMissions`
|
|
1142
|
+
|
|
1143
|
+
Searches missions by name or description.
|
|
1144
|
+
|
|
1145
|
+
**GET** `api/missions/search`
|
|
1146
|
+
|
|
1147
|
+
**Request**
|
|
1148
|
+
|
|
1149
|
+
Query parameters:
|
|
1150
|
+
|
|
1151
|
+
| Field | Type |
|
|
1152
|
+
| --- | --- |
|
|
1153
|
+
| `query` | `string` |
|
|
1154
|
+
|
|
1155
|
+
**Response**
|
|
1156
|
+
|
|
1157
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1158
|
+
|
|
1159
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1160
|
+
|
|
1161
|
+
**Example**
|
|
1162
|
+
|
|
1163
|
+
```js
|
|
1164
|
+
const { isError, message, result } = await star.missions.searchMissions({
|
|
1165
|
+
query: 'example string'
|
|
1166
|
+
});
|
|
1167
|
+
if (isError) throw new Error(message);
|
|
1168
|
+
console.log(result);
|
|
1169
|
+
```
|
|
1170
|
+
|
|
1171
|
+
Example response:
|
|
1172
|
+
|
|
1173
|
+
```json
|
|
1174
|
+
{
|
|
1175
|
+
"isError": false,
|
|
1176
|
+
"message": "",
|
|
1177
|
+
"result": null
|
|
1178
|
+
}
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
---
|
|
1182
|
+
|
|
1183
|
+
### `unpublishMission`
|
|
1184
|
+
|
|
1185
|
+
Unpublishes a mission from the STARNET system.
|
|
1186
|
+
|
|
1187
|
+
**POST** `api/missions/{id}/unpublish`
|
|
1188
|
+
|
|
1189
|
+
Route parameters:
|
|
1190
|
+
|
|
1191
|
+
| Field | Type |
|
|
1192
|
+
| --- | --- |
|
|
1193
|
+
| `id` | `Guid` |
|
|
1194
|
+
|
|
1195
|
+
**Request**
|
|
1196
|
+
|
|
1197
|
+
Body fields:
|
|
1198
|
+
|
|
1199
|
+
| Field | Type |
|
|
1200
|
+
| --- | --- |
|
|
1201
|
+
| `version` | `int (optional)` |
|
|
1202
|
+
|
|
1203
|
+
**Response**
|
|
1204
|
+
|
|
1205
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1206
|
+
|
|
1207
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1208
|
+
|
|
1209
|
+
**Example**
|
|
1210
|
+
|
|
1211
|
+
```js
|
|
1212
|
+
const { isError, message, result } = await star.missions.unpublishMission({
|
|
1213
|
+
id: '<id>',
|
|
1214
|
+
version: 1
|
|
1215
|
+
});
|
|
1216
|
+
if (isError) throw new Error(message);
|
|
1217
|
+
console.log(result);
|
|
1218
|
+
```
|
|
1219
|
+
|
|
1220
|
+
Example response:
|
|
1221
|
+
|
|
1222
|
+
```json
|
|
1223
|
+
{
|
|
1224
|
+
"isError": false,
|
|
1225
|
+
"message": "",
|
|
1226
|
+
"result": null
|
|
1227
|
+
}
|
|
1228
|
+
```
|
|
1229
|
+
|
|
1230
|
+
---
|
|
1231
|
+
|
|
1232
|
+
### `updateMission`
|
|
1233
|
+
|
|
1234
|
+
Updates an existing mission by its unique identifier.
|
|
1235
|
+
|
|
1236
|
+
**PUT** `api/missions/{id}`
|
|
1237
|
+
|
|
1238
|
+
Route parameters:
|
|
1239
|
+
|
|
1240
|
+
| Field | Type |
|
|
1241
|
+
| --- | --- |
|
|
1242
|
+
| `id` | `Guid` |
|
|
1243
|
+
|
|
1244
|
+
**Request**
|
|
1245
|
+
|
|
1246
|
+
Body type: `IMission`
|
|
1247
|
+
|
|
1248
|
+
| Field | Type |
|
|
1249
|
+
| --- | --- |
|
|
1250
|
+
| `PublishedOn` | `DateTime` |
|
|
1251
|
+
| `PublishedByAvatarId` | `Guid` |
|
|
1252
|
+
| `PublishedByAvatar` | `IAvatar` |
|
|
1253
|
+
| `Quests` | `IList<IQuest>` |
|
|
1254
|
+
| `Chapters` | `IList<IChapter>` |
|
|
1255
|
+
|
|
1256
|
+
**Response**
|
|
1257
|
+
|
|
1258
|
+
Standard `OASISResult` envelope (see top of this page) with:
|
|
1259
|
+
|
|
1260
|
+
`result` type: `IActionResult` (not part of the request/response payload).
|
|
1261
|
+
|
|
1262
|
+
**Example**
|
|
1263
|
+
|
|
1264
|
+
```js
|
|
1265
|
+
const { isError, message, result } = await star.missions.updateMission({
|
|
1266
|
+
id: '<id>',
|
|
1267
|
+
publishedOn: "2026-01-01T00:00:00Z",
|
|
1268
|
+
publishedByAvatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
|
1269
|
+
publishedByAvatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
|
|
1270
|
+
quests: [{ "ParentMissionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "QuestType": { }, "GeoSpatialNFTIds": ["example string"], "GeoSpatialNFTs": [ /* <IOASISGeoSpatialNFT> */ ], "GeoHotSpotIds": ["example string"], "GeoHotSpots": [{ "TriggerType": { }, "Lat": 1.0, "Long": 1.0, "HotSpotRadiusInMetres": 1, "TimeInSecondsNeedToBeAtLocationToTriggerHotSpot": 1, "TimeInSecondsNeedToLookAt3DObjectOr2DImageToTriggerHotSpot": 1, "Object3D": "<base64-bytes>", "Image2D": "<base64-bytes>", "Rewards": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "AudioData": "<base64-bytes>", "AudioUrl": "example string", "VideoData": "<base64-bytes>", "VideoUrl": "example string", "TextContent": "example string", "WebsiteUrl": "example string" }], "CurrentSubQuest": {}, "CurrentSubQuestNumber": 1 }],
|
|
1271
|
+
chapters: [{ "ChapterDisplayName": "example string" }]
|
|
1272
|
+
});
|
|
1273
|
+
if (isError) throw new Error(message);
|
|
1274
|
+
console.log(result);
|
|
1275
|
+
```
|
|
1276
|
+
|
|
1277
|
+
Example response:
|
|
1278
|
+
|
|
1279
|
+
```json
|
|
1280
|
+
{
|
|
1281
|
+
"isError": false,
|
|
1282
|
+
"message": "",
|
|
1283
|
+
"result": null
|
|
1284
|
+
}
|
|
1285
|
+
```
|
|
1286
|
+
|