Skip to content

Commit 4e740e2

Browse files
VinyarionHyarmendacilariesclarkjellejurre
authored
Files, Groups, Props, Users, NotificationV2 (#539)
* Files, Groups, Props, Users, NotificationV2 Files: - Add `GET /agreement` - Add `POST /agreement` - Add `PUT /assetReview/{assetReviewId}/notes` - Add `PUT /files/order` Groups: - Update `DELETE /groups/{groupId}` - Add missing optional query parameter - Update `POST /groups/{groupId}/join` - Add missing optional query parameter - Add missing optional request body - Add `GET /groups/{groupId}/auditLogTypes` - Add `POST /groups/{groupId}/block` - Add `PUT /groups/{groupId}/invites` - Add `GET /groups/{groupId}/members/search` - Add `GET /groups/{groupId}/transfer` - Add `POST /groups/{groupId}/transfer` - Add `DELETE /groups/{groupId}/transfer` Props: - Add `GET /props` - Add `POST /props` - Add `PUT /props/{propId}` - Add `DELETE /props/{propId}` - Add `GET /props/{propId}/publish` - Add `PUT /props/{propId}/publish` - Add `DELETE /props/{propId}/publish` Users: - Add `GET /users/{userId}/groups/invited` - Add `GET /users/{userId}/groups/permissions` - Add `GET /users/{userId}/groups/userblocked` - Add `DELETE /users/{userId}/persist` NotificationV2: - Update NotificationV2Type to add `group.transfer` - Update NotificationV2 to add data types - Add NotificationV2DataGroupInformative - Add NotificationV2DataGroupTransfer * lint 1 * Update groups.yaml * Apply suggestions from code review Co-authored-by: Aries <me@ariesclark.com> * lint 2 * Common search parameter, Avatar property, Config properties * Fix path * Describe prop spawnType and worldPlacementMask based on known examples * duh * Add playerPersistenceEnabled property to CreateInstanceRequest * Fix NotificationV2 data vs. details, data for badge.earned * Update NotificationV2ResponseType.yaml * Add groupIds parameter to getUserAllGroupPermissions * Update users.yaml * Add calendarEntryId property to CreateInstanceRequest * NotificationV2 data x-if, SentNotification details x-if, uploadImage body properties * fix NotificationV2 details property schema reference, enumize uploadFile and File properties * ah yes, renaming a file deletes the old one and creates a new one, very logical * Ctrl+X Crtl+V * Update agreement * Lint issue * Fix group member search response * Fix GroupTransferability * Fix test * move endpoints to appropriate categories, add Permission.data properties * local lint literally didnt catch this lmao --------- Co-authored-by: Aries <me@ariesclark.com> Co-authored-by: jellejurre <jelle@jilles.com>
1 parent 76a8678 commit 4e740e2

File tree

75 files changed

+1368
-247
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1368
-247
lines changed

openapi/components/parameters.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,20 @@ adminAssetBundleId:
2121
schema:
2222
type: string
2323
example: aab_e159e72c-ce54-4fbe-8c37-96af02f6d18d
24+
assetReviewId:
25+
name: assetReviewId
26+
description: Must be an valid asset review ID.
27+
required: true
28+
in: path
29+
schema:
30+
type: string
31+
authorId:
32+
name: authorId
33+
description: Must be a valid user ID.
34+
required: true
35+
in: query
36+
schema:
37+
$ref: ./schemas/UserID.yaml
2438
avatarId:
2539
name: avatarId
2640
description: Must be a valid avatar ID.
@@ -481,6 +495,14 @@ inventoryTemplateId:
481495
schema:
482496
type: string
483497
example: invt_00000000-0000-0000-0000-000000000000
498+
isInternalVariant:
499+
name: isInternalVariant
500+
description: Not quite sure what this actually does (exists on the website but doesn't seem to be used)
501+
required: false
502+
in: query
503+
schema:
504+
type: boolean
505+
example: false
484506
jamId:
485507
name: jamId
486508
description: Must be a valid query ID.

openapi/components/paths.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@
88
$ref: "./paths/economy.yaml#/paths/~1Steam~1transactions~1{transactionId}"
99
"/adminassetbundles/{adminAssetBundleId}":
1010
$ref: "./paths/files.yaml#/paths/~1adminassetbundles~1{adminAssetBundleId}"
11+
/agreement:
12+
$ref: "./paths/files.yaml#/paths/~1agreement"
1113
"/analysis/{fileId}/{versionId}":
1214
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}"
1315
"/analysis/{fileId}/{versionId}/security":
1416
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}~1security"
1517
"/analysis/{fileId}/{versionId}/standard":
1618
$ref: "./paths/files.yaml#/paths/~1analysis~1{fileId}~1{versionId}~1standard"
19+
"/assetReview/{assetReviewId}/notes":
20+
$ref: "./paths/economy.yaml#/paths/~1assetReview~1{assetReviewId}~1notes"
1721
/auth:
1822
$ref: "./paths/authentication.yaml#/paths/~1auth"
1923
/auth/confirmEmail:
@@ -152,6 +156,8 @@
152156
$ref: "./paths/files.yaml#/paths/~1file~1{fileId}~1{versionId}~1{fileType}~1status"
153157
/files:
154158
$ref: "./paths/files.yaml#/paths/~1files"
159+
/files/order:
160+
$ref: "./paths/groups.yaml#/paths/~1files~1order"
155161
/gallery:
156162
$ref: "./paths/files.yaml#/paths/~1gallery"
157163
/groups:
@@ -162,12 +168,16 @@
162168
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}"
163169
"/groups/{groupId}/announcement":
164170
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1announcement"
171+
"/groups/{groupId}/auditLogTypes":
172+
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1auditLogTypes"
165173
"/groups/{groupId}/auditLogs":
166174
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1auditLogs"
167175
"/groups/{groupId}/bans":
168176
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1bans"
169177
"/groups/{groupId}/bans/{userId}":
170178
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1bans~1{userId}"
179+
"/groups/{groupId}/block":
180+
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1block"
171181
"/groups/{groupId}/galleries":
172182
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1galleries"
173183
"/groups/{groupId}/galleries/{groupGalleryId}":
@@ -188,6 +198,8 @@
188198
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1leave"
189199
"/groups/{groupId}/members":
190200
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members"
201+
"/groups/{groupId}/members/search":
202+
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members~1search"
191203
"/groups/{groupId}/members/{userId}":
192204
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1members~1{userId}"
193205
"/groups/{groupId}/members/{userId}/roles/{groupRoleId}":
@@ -208,6 +220,8 @@
208220
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1roles"
209221
"/groups/{groupId}/roles/{groupRoleId}":
210222
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1roles~1{groupRoleId}"
223+
"/groups/{groupId}/transfer":
224+
$ref: "./paths/groups.yaml#/paths/~1groups~1{groupId}~1transfer"
211225
/health:
212226
$ref: "./paths/miscellaneous.yaml#/paths/~1health"
213227
/icon:
@@ -298,8 +312,12 @@
298312
$ref: "./paths/prints.yaml#/paths/~1prints~1{printId}"
299313
"/products/{productId}":
300314
$ref: "./paths/economy.yaml#/paths/~1products~1{productId}"
315+
/props:
316+
$ref: "./paths/props.yaml#/paths/~1props"
301317
"/props/{propId}":
302318
$ref: "./paths/props.yaml#/paths/~1props~1{propId}"
319+
"/props/{propId}/publish":
320+
$ref: "./paths/props.yaml#/paths/~1props~1{propId}~1publish"
303321
"/requestInvite/{userId}":
304322
$ref: "./paths/invite.yaml#/paths/~1requestInvite~1{userId}"
305323
"/requestInvite/{userId}/photo":
@@ -358,10 +376,16 @@
358376
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1feedback"
359377
"/users/{userId}/groups":
360378
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups"
379+
"/users/{userId}/groups/invited":
380+
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1invited"
381+
"/users/{userId}/groups/permissions":
382+
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1permissions"
361383
"/users/{userId}/groups/represented":
362384
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1represented"
363385
"/users/{userId}/groups/requested":
364386
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1requested"
387+
"/users/{userId}/groups/userblocked":
388+
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1groups~1userblocked"
365389
"/users/{userId}/instances/groups":
366390
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1instances~1groups"
367391
"/users/{userId}/instances/groups/{groupId}":
@@ -372,6 +396,8 @@
372396
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1mutuals~1friends"
373397
"/users/{userId}/mutuals/groups":
374398
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1mutuals~1groups"
399+
"/users/{userId}/persist":
400+
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1persist"
375401
"/users/{userId}/removeTags":
376402
$ref: "./paths/users.yaml#/paths/~1users~1{userId}~1removeTags"
377403
"/users/{userId}/subscription/eligible":

openapi/components/paths/avatars.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ paths:
4242
- $ref: ../parameters.yaml#/maxUnityVersion
4343
- $ref: ../parameters.yaml#/minUnityVersion
4444
- $ref: ../parameters.yaml#/platform
45+
- $ref: ../parameters.yaml#/isInternalVariant
4546
security:
4647
- authCookie: []
4748
responses:

openapi/components/paths/calendar.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ paths:
100100
- $ref: ../parameters.yaml#/utcOffset
101101
- $ref: ../parameters.yaml#/number
102102
- $ref: ../parameters.yaml#/offset
103+
- $ref: ../parameters.yaml#/isInternalVariant
103104
security:
104105
- authCookie: []
105106
responses:

openapi/components/paths/economy.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,27 @@ paths:
6868
$ref: ../responses/economy/TransactionResponse.yaml
6969
"401":
7070
$ref: ../responses/MissingCredentialsError.yaml
71+
"/assetReview/{assetReviewId}/notes":
72+
parameters:
73+
- $ref: ../parameters.yaml#/assetReviewId
74+
put:
75+
operationId: updateAssetReviewNotes
76+
summary: Update Asset Review Notes
77+
description: Update notes regarding an asset review.
78+
tags:
79+
- files
80+
requestBody:
81+
content:
82+
application/json:
83+
schema:
84+
$ref: ../requests/UpdateAssetReviewNotesRequest.yaml
85+
security:
86+
- authCookie: []
87+
responses:
88+
"200":
89+
description: The asset review notes are submitted.
90+
"401":
91+
$ref: ../responses/MissingCredentialsError.yaml
7192
/auth/user/subscription:
7293
get:
7394
operationId: getCurrentSubscriptions

openapi/components/paths/files.yaml

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,59 @@ paths:
1818
responses:
1919
"200":
2020
$ref: ../responses/files/AdminAssetBundleResponse.yaml
21+
/agreement:
22+
get:
23+
operationId: getContentAgreementStatus
24+
summary: Get Content Agreement Status
25+
description: Returns the agreement status of the currently authenticated user for the given agreementCode, contentId, and version.
26+
tags:
27+
- files
28+
parameters:
29+
- name: agreementCode
30+
description: The type of agreement (currently content.copyright.owned)
31+
required: true
32+
in: query
33+
schema:
34+
$ref: ../schemas/AgreementCode.yaml
35+
- name: contentId
36+
description: The id of the content being uploaded, such as a WorldID, AvatarID, or PropID
37+
required: true
38+
in: query
39+
schema:
40+
type: string
41+
example: avtr_c38a1615-5bf5-42b4-84eb-a8b6c37cbd11
42+
- name: version
43+
description: The version of the agreement (currently 1)
44+
required: true
45+
in: query
46+
schema:
47+
type: integer
48+
example: 1
49+
security:
50+
- authCookie: []
51+
responses:
52+
"200":
53+
$ref: ../responses/files/AgreementStatusResponse.yaml
54+
"401":
55+
$ref: ../responses/MissingCredentialsError.yaml
56+
post:
57+
operationId: submitContentAgreement
58+
summary: Submit Content Agreement
59+
description: Returns the agreement of the currently authenticated user for the given agreementCode, contentId, and version.
60+
tags:
61+
- files
62+
requestBody:
63+
content:
64+
application/json:
65+
schema:
66+
$ref: ../requests/AgreementRequest.yaml
67+
security:
68+
- authCookie: []
69+
responses:
70+
"200":
71+
$ref: ../responses/files/AgreementResponse.yaml
72+
"401":
73+
$ref: ../responses/MissingCredentialsError.yaml
2174
"/analysis/{fileId}/{versionId}":
2275
parameters:
2376
- $ref: ../parameters.yaml#/fileId
@@ -106,26 +159,27 @@ paths:
106159
type: object
107160
properties:
108161
animationStyle:
109-
type: string
110-
description: Animation style for sticker, required for emoji.
111-
example: bats
162+
$ref: ../schemas/ImageAnimationStyle.yaml
112163
file:
113164
type: string
114165
description: The binary blob of the png file.
115166
format: binary
116167
frames:
117168
type: integer
118-
description: Required for emojianimated. Total number of frames to be animated (2-64)
169+
description: Required for animated images. Total number of frames of the spritesheet to be animated.
170+
maximum: 64
171+
minimum: 2
119172
framesOverTime:
120173
type: integer
121-
description: Required for emojianimated. Animation frames per second (1-64)
174+
description: Required for animated images. Animation frames per second.
175+
maximum: 64
176+
minimum: 1
177+
loopStyle:
178+
$ref: ../schemas/ImageLoopStyle.yaml
122179
maskTag:
123-
type: string
124-
description: Mask of the sticker, optional for emoji.
125-
example: square
180+
$ref: ../schemas/ImageMask.yaml
126181
tag:
127-
type: string
128-
description: Needs to be either icon, gallery, sticker, emoji, or emojianimated
182+
$ref: ../schemas/ImagePurpose.yaml
129183
required:
130184
- file
131185
- tag

0 commit comments

Comments
 (0)