Skip to content

Commit 3ebecf4

Browse files
committed
feat: Move Member schema to its own file. Add required changes
1 parent e01245e commit 3ebecf4

File tree

3 files changed

+82
-56
lines changed

3 files changed

+82
-56
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
3+
namespace App\Swagger\schemas;
4+
5+
use OpenApi\Attributes as OA;
6+
7+
8+
9+
#[OA\Schema(
10+
schema: 'Member',
11+
type: 'object',
12+
properties: [
13+
new OA\Property(property: 'id', type: 'integer', example: 1),
14+
new OA\Property(property: 'created', type: 'integer', example: 1630500518),
15+
new OA\Property(property: 'last_edited', type: 'integer', example: 1630500518),
16+
new OA\Property(property: 'first_name', type: 'string', example: 'John'),
17+
new OA\Property(property: 'last_name', type: 'string', example: 'Doe'),
18+
new OA\Property(property: 'bio', type: 'string'),
19+
new OA\Property(property: 'gender', type: 'string'),
20+
new OA\Property(property: 'github_user', type: 'string'),
21+
new OA\Property(property: 'linked_in', type: 'string'),
22+
new OA\Property(property: 'irc', type: 'string'),
23+
new OA\Property(property: 'twitter', type: 'string'),
24+
new OA\Property(property: 'state', type: 'string'),
25+
new OA\Property(property: 'country', type: 'string'),
26+
new OA\Property(property: 'active', type: 'boolean', example: true),
27+
new OA\Property(property: 'email_verified', type: 'boolean', example: true),
28+
new OA\Property(property: 'pic', type: 'string'),
29+
new OA\Property(property: 'membership_type', type: 'string', example: 'Foundation'),
30+
new OA\Property(property: 'candidate_profile_id', type: 'integer', example: 1465),
31+
new OA\Property(property: 'company', type: 'string'),
32+
new OA\Property(property: 'speaker_id', type: 'integer', example: 187),
33+
new OA\Property(property: 'attendee_id', type: 'integer', example: 1287),
34+
new OA\Property(property: 'groups_events', type: 'array', items: new OA\Items(type: 'object'), description: 'GroupEvent object, only available if ?expand=groups_events is provided'),
35+
new OA\Property(property: 'groups', type: 'array', items: new OA\Items(type: 'integer')),
36+
new OA\Property(property: 'affiliations', type: 'array', items: new OA\Items(ref: '#/components/schemas/Organization'), description: 'Organization object, only available if ?expand=affiliations is provided'),
37+
new OA\Property(property: 'all_affiliations', type: 'array', items: new OA\Items(ref: '#/components/schemas/Affiliation'), description: 'Affiliation object, only available if ?expand=all_affiliations is provided'),
38+
new OA\Property(property: 'ccla_teams', type: 'array', items: new OA\Items(type: 'object'), description: 'CCLA Team object, only available if ?expand=ccla_teams is provided'),
39+
new OA\Property(property: 'election_applications', type: 'array', items: new OA\Items(type: 'object'), description: 'Nomination object, only available if ?expand=election_applications is provided'),
40+
new OA\Property(property: 'election_nominations', type: 'array', items: new OA\Items(type: 'object'), description: 'Nomination object, only available if ?expand=election_nominations is provided'),
41+
new OA\Property(property: 'candidate_profile', type: 'array', items: new OA\Items(type: 'object'), description: 'Candidate object, only available if ?expand=candidate_profile is provided'),
42+
new OA\Property(property: 'team_memberships', type: 'array', items: new OA\Items(type: 'object'), description: 'ChatTeamMember object, only available if ?expand=team_memberships is provided'),
43+
new OA\Property(property: 'sponsor_memberships', type: 'array', items: new OA\Items(type: 'object'), description: 'Sponsor object, only available if ?expand=sponsor_memberships is provided'),
44+
new OA\Property(property: 'favorite_summit_events', type: 'array', items: new OA\Items(type: 'integer')),
45+
new OA\Property(property: 'schedule_summit_events', type: 'array', items: new OA\Items(type: 'integer')),
46+
new OA\Property(property: 'summit_tickets', type: 'array', items: new OA\Items(type: 'object'), description: 'SummitAttendeeTicket object, only available if ?expand=sponsor_memberships is provided'),
47+
new OA\Property(property: 'schedule_shareable_link', type: 'array', items: new OA\Items(type: 'object'), description: 'PersonalCalendarShareInfo object, only available if ?expand=schedule_shareable_link is provided'),
48+
new OA\Property(property: 'legal_agreements', type: 'array', items: new OA\Items(type: 'integer')),
49+
new OA\Property(property: 'track_chairs', type: 'array', items: new OA\Items(type: 'integer')),
50+
new OA\Property(property: 'summit_permission_groups', type: 'array', items: new OA\Items(type: 'integer')),
51+
new OA\Property(property: 'speaker', type: 'array', items: new OA\Items(type: 'object'), description: 'PresentationSpeaker object, only available if ?expand=speaker is provided'),
52+
new OA\Property(property: 'attendee', type: 'array', items: new OA\Items(ref: '#/components/schemas/SummitAttendee'), description: 'only available if ?expand=attendee is provided'),
53+
new OA\Property(property: 'feedback', type: 'array', items: new OA\Items(type: 'object'), description: 'SummitEventFeedback object, only available if ?expand=feedback is provided'),
54+
new OA\Property(property: 'rsvp', type: 'array', items: new OA\Items(ref: '#/components/schemas/RSVP'), description: 'only available if ?expand=rsvp is provided'),
55+
new OA\Property(property: 'rsvp_invitations', type: 'array', items: new OA\Items(ref: '#/components/schemas/RSVPInvitation'), description: 'only available if ?expand=rsvp_invitations is provided'),
56+
new OA\Property(property: 'email', type: 'string', example: 'user@example.com'),
57+
new OA\Property(property: 'second_email', type: 'string', example: 'user@example.com'),
58+
new OA\Property(property: 'third_email', type: 'string', example: 'user@example.com'),
59+
new OA\Property(property: 'user_external_id', type: 'integer'),
60+
]
61+
)]
62+
class MemberSchema {}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace App\Swagger\schemas;
4+
5+
use OpenApi\Attributes as OA;
6+
7+
8+
#[OA\Schema(
9+
schema: 'Organization',
10+
type: 'object',
11+
properties: [
12+
new OA\Property(property: 'id', type: 'integer', example: 1),
13+
new OA\Property(property: 'created', type: 'integer', example: 1),
14+
new OA\Property(property: 'last_edited', type: 'integer', example: 1),
15+
new OA\Property(property: 'name', type: 'string', example: 'Example Organization'),
16+
])
17+
]
18+
class OrganizationSchema
19+
{
20+
}

app/Swagger/schemas.php

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -268,62 +268,6 @@ class RSVPAuthSchema{}
268268
]
269269
class RSVPInvitationsAuthSchema{}
270270

271-
#[OA\Schema(
272-
schema: 'Member',
273-
type: 'object',
274-
required: ['id', 'created', 'last_edited', 'first_name', 'last_name', 'bio', 'gender', 'github_user', 'linked_in', 'irc', 'twitter', 'state', 'country', 'active', 'email_verified', 'pic', 'membership_type', 'candidate_profile_id', 'company', ],
275-
properties: [
276-
new OA\Property(property: 'id', type: 'integer', example: 1),
277-
new OA\Property(property: 'created', type: 'integer', example: 1630500518),
278-
new OA\Property(property: 'last_edited', type: 'integer', example: 1630500518),
279-
new OA\Property(property: 'first_name', type: 'string', example: 'John'),
280-
new OA\Property(property: 'last_name', type: 'string', example: 'Doe'),
281-
new OA\Property(property: 'bio', type: 'string'),
282-
new OA\Property(property: 'gender', type: 'string'),
283-
new OA\Property(property: 'github_user', type: 'string'),
284-
new OA\Property(property: 'linked_in', type: 'string'),
285-
new OA\Property(property: 'irc', type: 'string'),
286-
new OA\Property(property: 'twitter', type: 'string'),
287-
new OA\Property(property: 'state', type: 'string'),
288-
new OA\Property(property: 'country', type: 'string'),
289-
new OA\Property(property: 'active', type: 'boolean', example: true),
290-
new OA\Property(property: 'email_verified', type: 'boolean', example: true),
291-
new OA\Property(property: 'pic', type: 'string'),
292-
new OA\Property(property: 'membership_type', type: 'string', example: 'Foundation'),
293-
new OA\Property(property: 'candidate_profile_id', type: 'integer', example: 1465),
294-
new OA\Property(property: 'company', type: 'string'),
295-
new OA\Property(property: 'speaker_id', type: 'integer', example: 187),
296-
new OA\Property(property: 'attendee_id', type: 'integer', example: 1287),
297-
new OA\Property(property: 'groups_events', type: 'array', items: new OA\Items(type: 'GroupEvent')),
298-
new OA\Property(property: 'groups', type: 'array', items: new OA\Items(type: 'integer')),
299-
new OA\Property(property: 'affiliations', type: 'array', items: new OA\Items(type: 'Organization')),
300-
new OA\Property(property: 'all_affiliations', type: 'array', items: new OA\Items(type: 'Affiliation')),
301-
new OA\Property(property: 'ccla_teams', type: 'array', items: new OA\Items(type: 'Team')),
302-
new OA\Property(property: 'election_applications', type: 'array', items: new OA\Items(type: 'Nomination')),
303-
new OA\Property(property: 'candidate_profile', type: 'array', items: new OA\Items(type: 'Candidate')),
304-
new OA\Property(property: 'election_nominations', type: 'array', items: new OA\Items(type: 'Nomination')),
305-
new OA\Property(property: 'team_memberships', type: 'array', items: new OA\Items(type: 'ChatTeamMember')),
306-
new OA\Property(property: 'sponsor_memberships', type: 'array', items: new OA\Items(type: 'Sponsor')),
307-
new OA\Property(property: 'favorite_summit_events', type: 'array', items: new OA\Items(type: 'integer')),
308-
new OA\Property(property: 'schedule_summit_events', type: 'array', items: new OA\Items(type: 'integer')),
309-
new OA\Property(property: 'summit_tickets', type: 'array', items: new OA\Items(type: 'SummitAttendeeTicket')),
310-
new OA\Property(property: 'schedule_shareable_link', type: 'array', items: new OA\Items(type: 'PersonalCalendarShareInfo')),
311-
new OA\Property(property: 'legal_agreements', type: 'array', items: new OA\Items(type: 'integer')),
312-
new OA\Property(property: 'track_chairs', type: 'array', items: new OA\Items(type: 'integer')),
313-
new OA\Property(property: 'summit_permission_groups', type: 'array', items: new OA\Items(type: 'integer')),
314-
new OA\Property(property: 'speaker', type: 'array', items: new OA\Items(type: 'PresentationSpeaker')),
315-
new OA\Property(property: 'attendee', type: 'array', items: new OA\Items(type: 'SummitAttendee')),
316-
new OA\Property(property: 'feedback', type: 'array', items: new OA\Items(type: 'SummitEventFeedback')),
317-
new OA\Property(property: 'rsvp', type: 'array', items: new OA\Items(type: 'RSVP')),
318-
new OA\Property(property: 'rsvp_invitations', type: 'array', items: new OA\Items(type: 'RSVPInvitation')),
319-
new OA\Property(property: 'email', type: 'string', example: 'user@example.com'),
320-
new OA\Property(property: 'second_email', type: 'string', example: 'user@example.com'),
321-
new OA\Property(property: 'third_email', type: 'string', example: 'user@example.com'),
322-
new OA\Property(property: 'user_external_id', type: 'integer'),
323-
]
324-
)]
325-
class MemberSchema {}
326-
327271
#[OA\Schema(
328272
schema: 'RSVP',
329273
type: 'object',

0 commit comments

Comments
 (0)