generated from peter-evans/swagger-github-pages
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #72 from w8385/feat/add-endpoints
엔드포인트 및 모델 추가
- Loading branch information
Showing
20 changed files
with
803 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
{ | ||
"singleQuote": true, | ||
"plugins": ["@typespec/prettier-plugin-typespec"] | ||
"plugins": [ | ||
"@typespec/prettier-plugin-typespec" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
namespace SolvedAC; | ||
|
||
/** | ||
* solved.ac의 게시글입니다. | ||
*/ | ||
model Post { | ||
/** | ||
* 게시글의 아이디입니다. | ||
* @example "rules_v1" | ||
*/ | ||
postId: string; | ||
|
||
/** | ||
* 게시글의 제목입니다. | ||
* @example "solved.ac 이용 규칙 – v1" | ||
*/ | ||
title: string; | ||
|
||
/** | ||
* 게시글의 내용입니다. | ||
* @example "이 규칙은 2020년 3월 1일부터 유효합니다.\n\n## 1\\. 난이도 기여\n\n난이도 기여는 난이도 기여 가이드라인을 기반으로 자신이 해당 문제를 해결하고 느낀 난이도를 솔직하게 표현해야 합니다. 다음과 같은 난이도 기여는 운영진 판단 하에 임의로 삭제될 수 있습니다.\n\n**a**. 특정 문제에 다른 이용자 대부분이 납득하기 힘든 난이도를 매긴 경우\n\n* 예: 1000번 문제에 Ruby I을 기여, 8481번 문제에 Bronze V를 기여\n* 2020년 이전 기여 중 Platinum과 Silver를 헷갈린 기여는 예외로 합니다.\n* 이와 같은 기여를 자신의 티어를 올릴 목적으로 한 경우, 기여가 삭제되는 것은 물론 해당 문제에 대한 경험치가 영구적으로 반영되지 않게 될 수 있습니다.\n\n**b**. 특정 문제를 해결하는 것과 관련이 없거나 도움이 전혀 되지 않는 태그를 단 경우\n* 예: 1003번 문제에 tag:dijkstra를 닮\n* 난이도 기여 전체를 삭제하는 대신, 해당 태그만 삭제될 수도 있습니다.\n* 문제와 관련 없는 태그를 납득하기 힘들 정도로 많이 달았다면 이용자에게 혼란을 주기 위함이라고 판단될 수 있습니다.\n\n**c**. 난이도 기여 경험치를 얻기 위한 목적으로, 자동화 스크립트 등을 사용해 자신이 푼 문제에 난이도를 일괄적으로 매기는 경우\n\n**d**. 경험치를 얻기 위한 목적으로, 정상적이지 않은 방법으로 난이도 기여를 한 경우\n* 정상적이지 않은 방법으로 난이도 기여가 가능함을 발견한 경우 shift@solved.ac로 즉시 신고 바랍니다. 프로필에 뱃지를 달아 드립니다.\n\n**e**. 동일인이 다중 계정을 사용해 한 문제에 1건 초과의 기여를 남긴 경우\n\n## 2. 난이도 기여 의견\n\n난이도 기여 의견은 문제 출제자들과 다른 기여자들, 그리고 문제를 푸는 사람들에 대한 존중을 바탕으로 작성되어야 합니다. 다음과 같은 의견은 운영진 판단 하에 임의로 삭제될 수 있습니다.\n\n**a**. 인종, 성, 성적 지향, 지역, 종교, 교육 수준, 생활 수준 등에 기반해 혐오적인 내용을 담고 있는 경우\n\n**b**. 출제자, 다른 기여자, 또는 문제를 푸는 사람들에 대한 비하적인 내용을 담고 있는 경우\n\n**c**. 욕설을 담고 있는 경우\n\n**d**. 문제 혹은 문제 해결과 관련이 없는 내용을 적은 경우\n\n## 3. 소스 코드 윤리\n\n다음과 같은 행위를 한 경우 운영진 판단 하에 사용 제재를 가할 수 있습니다.\n\n**a**. 경험치를 올릴 목적으로 다른 사람의 소스 코드를 그대로 혹은 수정을 가해 제출하는 행위\n\n## 4. 이벤트 참가\n\n동일인이 다중 계정을 사용해 이벤트 등에 참가할 경우 보상 획득을 임의로 제한할 수 있습니다.\n\n## 5. 아레나\n\n**a**. 아레나 참가 중에는 다른 참가자와 문제에 대해 의논하면 안 됩니다.\n\n**b**. 아레나는 1인당 한 개의 계정으로만 참가할 수 있습니다. 단, 다음의 예외를 허용합니다.\n- 이전에 다른 계정으로 아레나에 참가한 적 있을 경우, 이전 계정을 더 이상 사용하지 않으려는 경우에만 새 계정으로 참가할 수 있습니다.\n\n**c**. 동시에 두 개 이상의 다중 계정으로 아레나에 참가하면 안 됩니다.\n\n**d**. 아레나 참가 중 제출한 소스 코드는 대회 시작 시점 이전에 작성한 것이어도 괜찮습니다. 단, 제출한 코드는 제3자의 저작권 등의 권리를 침해하지 않아야 합니다.\n\n**e**. Open Contest 아레나 등, 앞서 또는 동시에 같은 문제들을 포함하여 개최된 대회가 있는 경우, 해당 대회의 참가자는 아레나에 참가하면 안 됩니다.\n\n**f**. 아레나에 참가하고자 하는 경우 대회 시작 5분 전까지 등록을 마쳐야 합니다.\n\n## 제재\n위의 사항을 위반해 기여가 삭제된 경우, 위반 행위의 심각성을 따져 추가적인 제재가 가해질 수 있습니다.\n\n* **1.c.**, **1.d.**\n - 난이도 기여 영구 제한 및 사이트 이용 제한.\n* **1.e.**\n - (해당하는 다중 계정에 대해) 난이도 기여 영구 제한.\n* **2.a.**, **2.b.**, **2.c.**\n - 난이도 기여 30일 제한. 최근 365일간 3회 이상 반복되었을 경우 난이도 기여 영구 제한.\n* **1.a.**, **1.b.**, **2.d.**\n - 악의가 있다고 판단될 경우, 난이도 기여 7일 제한 및 해당 문제에 대해 난이도 기여 영구 제한. 최근 365일간 5회 이상 반복되었을 경우 난이도 기여 영구 제한.\n* **3.a.**\n - 해당 계정의 경험치, 레이팅, CLASS를 영구히 0으로 설정.\n - 레이팅을 0으로 설정하는 기간 동안 이벤트 등에 참가하더라도 보상을 부여하지 않으며, 순위 집계 시 해당 유저를 제외함.\n* **5.a.**, **5.b.**, **5.c.**, **5.d.**, **5.e.**\n - 해당 계정의 아레나 레이팅을 영구히 0으로 설정.\n\n추가로, 운영진 판단 하에 규칙을 위반한 해당 사용자의 기여를 전부 삭제하거나 사이트 이용을 영구 제한할 수 있습니다." | ||
*/ | ||
content: string; | ||
|
||
/** | ||
* 게시글이 작성된 언어입니다. | ||
*/ | ||
language: string; | ||
|
||
/** | ||
* 게시글 내용의 타입입니다. | ||
*/ | ||
type: string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
namespace SolvedAC; | ||
|
||
/** | ||
* solved.ac 사용자 부가 정보입니다. | ||
*/ | ||
model UserAdditionalInfo { | ||
/** | ||
* 사용자의 국가/지역 코드입니다. | ||
* | ||
* @example "kr" | ||
*/ | ||
countryCode: string; | ||
|
||
/** | ||
* 사용자의 성별입니다. | ||
* - 0: 선택 안 함 | ||
* - 1: 남성 | ||
* - 2: 여성 | ||
* - 9: 기타 | ||
* | ||
* @example 0 | ||
*/ | ||
gender: uint64; | ||
|
||
/** | ||
* 사용자를 영어로 표기할 때 사용하는 대명사입니다. | ||
* | ||
* @example "he/him" | ||
*/ | ||
pronouns: string; | ||
|
||
/** | ||
* 사용자의 생년입니다. | ||
* | ||
* @example 1998 | ||
*/ | ||
birthYear: uint64; | ||
|
||
/** | ||
* 사용자의 생월입니다. | ||
* | ||
* @example 8 | ||
*/ | ||
birthMonth: uint64; | ||
|
||
/** | ||
* 사용자의 생일입니다. | ||
* | ||
* @example 6 | ||
*/ | ||
birthDay: uint64; | ||
|
||
/** | ||
* 사용자의 영어 이름입니다. | ||
* | ||
* @example "Suhyun Park" | ||
*/ | ||
name: string; | ||
|
||
/** | ||
* 사용자의 모국어 이름입니다. | ||
* | ||
* @example "박수현" | ||
*/ | ||
nameNative: string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
import "./show.tsp"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 해당 ID의 단체 정보를 가져옵니다. | ||
* | ||
* @return | ||
* 단체 정보를 가져옵니다. | ||
*/ | ||
@summary("단체 ID로 단체 정보 가져오기") | ||
@tag("organization") | ||
@get | ||
@route("/organization/show") | ||
op getOrganizationById( | ||
/** | ||
* 요청할 단체의 ID | ||
*/ | ||
@query | ||
organizationId: string, | ||
): GetOrganizationById.Ok; | ||
|
||
namespace GetOrganizationById { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body organization: Organization; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
import "./show.tsp"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 해당 제목의 게시글을 가져옵니다. | ||
* | ||
* @return | ||
* 게시글을 가져옵니다. | ||
*/ | ||
@summary("게시글 제목으로 게시글 가져오기") | ||
@tag("post") | ||
@get | ||
@route("/post/show") | ||
op getPostById( | ||
/** | ||
* 응답을 받을 언어입니다. | ||
*/ | ||
@header | ||
`x-solvedac-language`?: Language, | ||
|
||
/** | ||
* 요청할 게시글의 제목 | ||
*/ | ||
@query | ||
postId: string, | ||
): GetPostById.Ok; | ||
|
||
namespace GetPostById { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body post: Post; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. | ||
* | ||
* @return | ||
* 페이지네이션 가능한 사용자 목록을 반환합니다. | ||
*/ | ||
@summary("아레나 레이팅 순 단체 내 랭킹 가져오기") | ||
@tag("ranking") | ||
@get | ||
@route("/ranking/arena_in_organization") | ||
op getRankingByArenaRatingInOrganization( | ||
/** | ||
* 단체 ID | ||
*/ | ||
@query | ||
organizationId: uint32, | ||
|
||
/** | ||
* 페이지 | ||
*/ | ||
@query | ||
page?: uint32, | ||
): GetRankingByArenaRatingInOrganization.Ok; | ||
|
||
namespace GetRankingByArenaRatingInOrganization { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body data: PaginatedList<User>; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. | ||
* | ||
* @return | ||
* 페이지네이션 가능한 사용자 목록을 반환합니다. | ||
*/ | ||
@summary("문제풀이 레이팅 순 단체 내 랭킹 가져오기") | ||
@tag("ranking") | ||
@get | ||
@route("/ranking/in_organization") | ||
op getRankingByACRatingInOrganization( | ||
/** | ||
* 단체 ID | ||
*/ | ||
@query | ||
organizationId: uint32, | ||
|
||
/** | ||
* 페이지 | ||
*/ | ||
@query | ||
page?: uint32, | ||
): GetRankingByACRatingInOrganization.Ok; | ||
|
||
namespace GetRankingByACRatingInOrganization { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body data: PaginatedList<User>; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
import "./list.tsp"; | ||
import "./show.tsp"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 태그 목록을 가져옵니다. | ||
* | ||
* @return | ||
* 태그 목록을 가져옵니다. | ||
*/ | ||
@summary("태그 목록 가져오기") | ||
@tag("tag") | ||
@get | ||
@route("/tag/list") | ||
op getTagList( | ||
/** | ||
* 페이지 | ||
*/ | ||
@query | ||
page?: uint32, | ||
): GetTagList.Ok; | ||
|
||
namespace GetTagList { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body data: PaginatedList<ProblemTag>; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 태그 ID로 태그 정보를 가져옵니다. | ||
* | ||
* @return | ||
* 태그 정보를 가져옵니다. | ||
*/ | ||
@summary("태그 ID로 태그 정보 가져오기") | ||
@tag("tag") | ||
@get | ||
@route("/tag/show") | ||
op getTagByKey( | ||
/** | ||
* 태그 ID | ||
*/ | ||
@query | ||
key: string, | ||
): GetTagByKey.Ok; | ||
|
||
namespace GetTagByKey { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body tag: ProblemTag; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using TypeSpec.Http; | ||
using TypeSpec.OpenAPI; | ||
|
||
namespace SolvedAC; | ||
|
||
/** | ||
* 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. | ||
* | ||
* @return | ||
* 사용자 부가 정보를 가져옵니다 | ||
*/ | ||
@summary("사용자 핸들로 부가 정보 가져오기") | ||
@tag("user") | ||
@get | ||
@route("/user/additional_info") | ||
op getUserAdditionalInfo( | ||
/** | ||
* 요청할 사용자명 | ||
*/ | ||
@query | ||
handle: string, | ||
): GetUserAdditionalInfo.Ok; | ||
|
||
namespace GetUserAdditionalInfo { | ||
@extension(XInternal, true) | ||
model Ok { | ||
@statusCode status: 200; | ||
@body userAdditionalInfo: UserAdditionalInfo; | ||
} | ||
} |
Oops, something went wrong.