Skip to content

Commit

Permalink
feat: migrate /search/suggestion
Browse files Browse the repository at this point in the history
  • Loading branch information
RanolP committed Mar 18, 2024
1 parent c6b9355 commit a714f0a
Show file tree
Hide file tree
Showing 7 changed files with 225 additions and 266 deletions.
8 changes: 4 additions & 4 deletions patches/@[email protected]
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/dist/src/schema-emitter.js b/dist/src/schema-emitter.js
index 377d1afa8874b64aa99fbeb6e309875c0ff24458..dd421235ca8ebf173a19dd4162573396c9ffe90b 100644
index 377d1afa8874b64aa99fbeb6e309875c0ff24458..7207ecabe07e4fb04462ba7ca3bad0f6f0bdaa6b 100644
--- a/dist/src/schema-emitter.js
+++ b/dist/src/schema-emitter.js
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
Expand Down Expand Up @@ -60,12 +60,12 @@ index 377d1afa8874b64aa99fbeb6e309875c0ff24458..dd421235ca8ebf173a19dd4162573396
+ if (hasInfoOnFirstLine) {
+ const [title, ...contents] = content.split("\n");
+ if (contents.length > 0) {
+ return { title, content: JSON.parse(contents.join("\n")) };
+ return { title, content: JSON.parse(contents.join("\n").replace(/^(```|`)|(`|```)$/g, '')) };
+ } else {
+ return { content: JSON.parse(content) };
+ return { content: JSON.parse(content.replace(/^(```|`)|(`|```)$/g, '')) };
+ }
+ } else {
+ return { content: JSON.parse(content) };
+ return { content: JSON.parse(content.replace(/^(```|`)|(`|```)$/g, '')) };
+ }
+ } catch (e) {
+ console.error(`Error: ${e?.message}\n${content} is not a valid json.`);
Expand Down
6 changes: 3 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 34 additions & 4 deletions src/models/User.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,62 @@ namespace SolvedAC;
/**
* solved.ac 사용자 정보입니다.
*/
@withVisibility("full")
model User {
/**
* 사용자명입니다.
*
* @example "shiftpsh"
*/
@visibility("brief", "full")
handle: string;

/**
* 자기소개입니다.
*
* @example "🧡 이곳의 개발자입니다."
*/
@visibility("brief", "full")
bio: string;

/**
* 사용자가 장착 중인 뱃지 ID입니다.
* 장착 중인 뱃지 ID입니다.
*
* @example "ghudegy2022-1"
*/
@visibility("brief", "full")
badgeId?: string | null;

/**
* 사용자가 장착 중인 배경 ID입니다.
* 장착 중인 배경 ID입니다.
*
* @example "event240203"
*/
@visibility("brief", "full")
backgroundId: string;

/**
* 사용자의 프로필 사진으로 가는 하이퍼링크입니다.
* 프로필 사진으로 가는 하이퍼링크입니다.
*
* @example "https://static.solved.ac/uploads/profile/shiftpsh-picture-1693244003120.png"
*/
@visibility("brief", "full")
profileImageUrl?: url | null;

/**
* 푼 문제 수입니다.
*
* @example 3474
*/
@visibility("brief", "full")
solvedCount: uint64;

/**
* 난이도 기여 수입니다.
*
* @example 1528
*/
@visibility("brief", "full")
voteCount: uint64;

/**
Expand All @@ -59,6 +67,7 @@ model User {
*
* @example 8
*/
@visibility("brief", "full")
class: 0 | Class;

/**
Expand All @@ -69,102 +78,117 @@ model User {
*
* @example "none"
*/
@visibility("brief", "full")
classDecoration: "none" | "silver" | "gold";

/**
* 라이벌 수입니다.
*
* @example 57
*/
@visibility("brief", "full")
rivalCount: uint64;

/**
* 역라이벌 수입니다.
*
* @example 139
*/
@visibility("brief", "full")
reverseRivalCount: uint64;

/**
* @example 26
*/
@visibility("brief", "full")
tier: SolveTier;

/**
* 문제풀이 레이팅입니다
*
* @example 2724
*/
@visibility("brief", "full")
rating: uint32;

/**
* 상위 100 문제 난이도 합으로 얻은 레이팅입니다.
*
* @example 2294
*/
@visibility("brief", "full")
ratingByProblemsSum: uint32;

/**
* 취득한 CLASS에 따라 얻은 레이팅입니다.
*
* @example 230
*/
@visibility("brief", "full")
ratingByClass: uint32;

/**
* 푼 문제 수로 얻은 레이팅입니다.
*
* @example 175
*/
@visibility("brief", "full")
ratingBySolvedCount: uint32;

/**
* 문제 난이도에 기여한 횟수로 받은 레이팅입니다.
*
* @example 25
*/
@visibility("brief", "full")
ratingByVoteCount: uint32;

/**
* 현재 아레나 티어입니다.
*
* @example 0
*/
@visibility("brief", "full")
arenaTier: ArenaTier;

/**
* 현재 아레나 레이팅입니다.
*
* @example 0
*/
@visibility("brief", "full")
arenaRating: uint32;

/**
* 역대 받은 아레나 티어 중 최고점일 때의 아레나 티어입니다.
*
* @example 0
*/
@visibility("brief", "full")
arenaMaxTier: ArenaTier;

/**
* 역대 받은 아레나 레이팅 중 최고점일 때의 아레나 레이팅입니다.
*
* @example 0
*/
@visibility("brief", "full")
arenaMaxRating: uint32;

/**
* 참여한 아레나 라운드 수입니다.
*
* @example 0
*/
@visibility("brief", "full")
arenaCompetedRoundCount: uint64;

/**
* 유지한 최대 스트릭의 길이입니다. (일 단위)
*
* @example 366
*/
@visibility("brief", "full")
maxStreak: uint64;

/**
Expand All @@ -173,13 +197,15 @@ model User {
*
* @example 1063
*/
@visibility("brief", "full")
coins: uint64;

/**
* 보유 중인 별가루 양입니다.
*
* @example 273583
*/
@visibility("brief", "full")
stardusts: uint64;

/**
Expand All @@ -188,6 +214,7 @@ model User {
*
* @example "2021-06-19T00:00:00.000Z"
*/
@visibility("brief", "full")
joinedAt: offsetDateTime;

/**
Expand All @@ -196,6 +223,7 @@ model User {
*
* @example "1970-01-01T00:00:00.000Z"
*/
@visibility("brief", "full")
bannedUntil: offsetDateTime;

/**
Expand All @@ -204,14 +232,16 @@ model User {
*
* @example "2099-12-31T14:59:59.000Z"
*/
@visibility("brief", "full")
proUntil: offsetDateTime;

/**
* 사용자의 순위입니다.
* 순위입니다.
* 이 값은 요청하는 엔드포인트의 정렬 기준에 따라 다를 수 있습니다.
* 예) /ranking/* 엔드포인트에서는 해당 랭킹의 순위, /show 엔드포인트에서는 문제풀이 레이팅 순위
*
* @example 130
*/
@visibility("full")
rank: uint64;
}
2 changes: 0 additions & 2 deletions src/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ paths:
$ref: "./paths/ranking/tier.yaml#/paths/Path"
/ranking/organization:
$ref: "./paths/ranking/organization.yaml#/paths/Path"
/search/suggestion:
$ref: "./paths/search/suggestion.yaml#/paths/Path"
/tag/list:
get:
description: "TODO"
Expand Down
1 change: 1 addition & 0 deletions src/operations/search/_barrel.tsp
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import "./problem.tsp";
import "./tag.tsp";
import "./user.tsp";
import "./suggestion.tsp";
Loading

0 comments on commit a714f0a

Please sign in to comment.