diff --git a/src/models/UserAdditionalInfo.tsp b/src/models/UserAdditionalInfo.tsp new file mode 100644 index 0000000..34c845e --- /dev/null +++ b/src/models/UserAdditionalInfo.tsp @@ -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; +} diff --git a/src/models/_barrel.tsp b/src/models/_barrel.tsp index 0057532..5807595 100644 --- a/src/models/_barrel.tsp +++ b/src/models/_barrel.tsp @@ -25,3 +25,4 @@ import "./Organization.tsp"; import "./OrganizationType.tsp"; import "./Ranked.tsp"; import "./Emoticon.tsp"; +import "./UserAdditionalInfo.tsp"; diff --git a/src/operations/user/_barrel.tsp b/src/operations/user/_barrel.tsp index 7d2e4b7..96e6c62 100644 --- a/src/operations/user/_barrel.tsp +++ b/src/operations/user/_barrel.tsp @@ -2,3 +2,4 @@ import "./show.tsp"; import "./top_100.tsp"; import "./organizations.tsp"; import "./problem_stats.tsp"; +import "./additional_info.tsp"; diff --git a/src/operations/user/additional_info.tsp b/src/operations/user/additional_info.tsp new file mode 100644 index 0000000..32875c6 --- /dev/null +++ b/src/operations/user/additional_info.tsp @@ -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 user: UserAdditionalInfo; + } +}