Skip to content

Commit

Permalink
Merge pull request #495 from cloudnativedaysjp/feat/scan-qrcode
Browse files Browse the repository at this point in the history
バーコードをスキャンしてチェックインする機能の実装
  • Loading branch information
takaishi authored Jun 2, 2024
2 parents b794fd4 + ffc1354 commit 0a66ff7
Show file tree
Hide file tree
Showing 12 changed files with 682 additions and 50 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"axios": "^1.0.0",
"dayjs": "^1.11.5",
"graphql": "^16.6.0",
"jsqr": "^1.4.0",
"jwt-decode": "^3.1.2",
"linkify-react": "^4.0.0",
"linkifyjs": "^4.0.0",
Expand Down
254 changes: 251 additions & 3 deletions schemas/swagger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,34 @@ paths:
$ref: '#/components/schemas/Profile'
'403':
description: You don't logged in
/api/v1/check_in_events:
post:
tags:
- CheckIn
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckInEvent'
responses:
'201':
description: CREATED
'400':
description: Invalid params supplied
/api/v1/check_in_talks:
post:
tags:
- CheckIn
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckInTalk'
responses:
'201':
description: CREATED
'400':
description: Invalid params supplied
/api/v1/events:
get:
tags:
Expand Down Expand Up @@ -117,6 +145,76 @@ paths:
description: Invalid params supplied
'404':
description: Track not found
/api/v1/streamings:
get:
parameters:
- name: eventAbbr
in: query
description: abbr of event (e.g. cndt2020)
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Streaming'
'400':
description: Invalid [eventAbbr] supplied
'404':
description: Event not found
/api/v1/speakers:
get:
tags:
- Speaker
parameters:
- name: eventAbbr
in: query
description: abbr of event (e.g. cndt2020)
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Speaker'
'400':
description: Invalid [eventAbbr] supplied
'404':
description: Event not found
/api/v1/proposals:
get:
tags:
- Proposal
parameters:
- name: eventAbbr
in: query
description: abbr of event (e.g. cndt2020)
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Proposal'
'400':
description: Invalid [eventAbbr] supplied
'404':
description: Event not found
/api/v1/talks:
get:
tags:
Expand Down Expand Up @@ -383,7 +481,6 @@ paths:
description: Invalid params supplied
'404':
description: Booth not found

# dreamkast function
/api/v1/profile/{profileId}/points:
get:
Expand Down Expand Up @@ -897,7 +994,6 @@ paths:
schema:
type: "string"
content: {}

components:
schemas:
Profile:
Expand Down Expand Up @@ -994,7 +1090,7 @@ components:
theme: "ともに踏み出すCloudNative祭"
about: "『クラウドネイティブ』って何だっけ? 私たち自身ずっと考えてきました。"
privacy_policy: "プライバシーポリシーだよ"
privacy_policy_for_speaker: "スピーカー向けのポリシーだよ"
privacy_policy_for_speaker: "登壇者向けのポリシーだよ"
copyright: "CloudNative Days Committee"
coc: "CoCだよ"
required:
Expand Down Expand Up @@ -1037,12 +1133,79 @@ components:
required:
- id
- name
Streaming:
type: object
additionalProperties: false
properties:
id:
type: string
status:
type: string
trackId:
type: number
destinationUrl:
type: string
playbackUrl:
type: string
mediaLiveChannelStatus:
type: string
Speaker:
type: object
additionalProperties: false
properties:
id:
type: number
name:
type: string
company:
type: string
nullable: true
jobTitle:
type: string
profile:
type: string
githubId:
type: string
nullable: true
twitterId:
type: string
nullable: true
avatarUrl:
type: string
nullable: true
example:
- id: 1
name: "めちゃすごい人"
company: "Hoge Inc."
jobTitle: "Super Engineer"
profile: "This is profile"
githubId: "3aae1aa4-563b-4a8a-9116-7ef1f2b1b08c"
twitterId: "4639289c-b3fe-4049-8f25-58c2899c1286"
avatarUrl: "https://avatars.githubusercontent.com/u/107187?v=4" # r_takaishi's avatar of GitHub
- id: 2
name: "やんごとない人"
company: "Foo Inc."
jobTitle: "Great Engineer"
profile: "プロフィール"
githubId: "b677b66a-917e-4acb-b6ac-b7a09511e103"
twitterId: "87b72a9a-257f-4680-ab72-5edb4348124e"
avatarUrl: "https://avatars.githubusercontent.com/u/44778132?s=200&v=4" # cloudnativedaysjp's avatar of GitHub
required:
- id
- name
Talk:
type: object
additionalProperties: false
properties:
id:
type: number
type:
type: string
enum:
- Session
- SponsorSession
- KeynoteSession
- Intermission
conferenceId:
type: number
trackId:
Expand Down Expand Up @@ -1104,6 +1267,12 @@ components:
nullable: true
slotNum:
type: number
allowShowingVideo:
type: boolean
offlineParticipationCount:
type: number
onlineParticipationCount:
type: number
example:
- id: 1
trackId: 2
Expand All @@ -1129,6 +1298,7 @@ components:
actualEndTime: "Sat, 23 Jan 2021 09:20:00 GMT"
presentationMethod: '現地登壇'
slotNum: 1
allowShowingVideo: true
- id: 2
trackId: 2
videoPlatform: "vimeo"
Expand All @@ -1153,6 +1323,7 @@ components:
actualEndTime: "Sat, 23 Jan 2021 09:20:00 GMT"
presentationMethod: 'オンライン登壇'
slotNum: 1
allowShowingVideo: false
required:
- id
- trackId
Expand All @@ -1167,6 +1338,53 @@ components:
- talkDuration
- talkDifficulty
- talkCategory
- offlineParticipationCount
- onlineParticipationCount
Proposal:
type: object
additionalProperties: false
properties:
id:
type: number
status:
type: string
conferenceId:
type: number
talkId:
type: number
title:
type: string
abstract:
type: string
speakers:
type: array
items:
type: object
properties:
name:
type: string
id:
type: number
params:
type: object
required:
- id
- status
- conferenceId
- talkId
example:
- id: 1
status: "accepted"
conferenceId: 1
talkId: 1
- id: 2
status: "rejected"
conferenceId: 1
talkId: 2
- id: 3
status: "registered"
conferenceId: 1
talkId: 3
ChatMessage:
type: object
additionalProperties: false
Expand Down Expand Up @@ -1347,6 +1565,36 @@ components:
}
createdAt: "2022-04-30T10:06:33.938Z"
updatedAt: "2022-05-30T22:02:11.123Z"
CheckInEvent:
type: object
properties:
profileId:
type: string
eventAbbr:
type: string
checkInTimestamp:
type: number
required:
- profileId
- eventAbbr
- checkInTimestamp
CheckInTalk:
type: object
properties:
profileId:
type: string
eventAbbr:
type: string
talkId:
type: string
checkInTimestamp:
type: number
required:
- eventAbbr
- profileId
- talkId
- checkInTimestamp


# dreamkast-function
Vote:
Expand Down
Loading

0 comments on commit 0a66ff7

Please sign in to comment.