From 7847fee4a399677566ad5421426e6bb160e73da2 Mon Sep 17 00:00:00 2001 From: RanolP <16236317+RanolP@users.noreply.github.com> Date: Sat, 27 Jul 2024 18:35:47 +0000 Subject: [PATCH] Follow-up solvedac/unofficial-documentation --- dist/cjs/apis/OrganizationApi.cjs | 75 ++++++++ dist/cjs/apis/OrganizationApi.d.cts | 31 +++ dist/cjs/apis/PostApi.cjs | 78 ++++++++ dist/cjs/apis/PostApi.d.cts | 32 ++++ dist/cjs/apis/RankingApi.cjs | 64 +++++++ dist/cjs/apis/RankingApi.d.cts | 30 ++- dist/cjs/apis/SearchApi.d.cts | 6 +- dist/cjs/apis/TagApi.cjs | 101 ++++++++++ dist/cjs/apis/TagApi.d.cts | 44 +++++ dist/cjs/apis/UserApi.cjs | 116 ++++++++++++ dist/cjs/apis/UserApi.d.cts | 54 +++++- dist/cjs/apis/index.cjs | 3 + dist/cjs/apis/index.d.cts | 3 + dist/cjs/models/index.cjs | 17 +- dist/cjs/models/index.d.cts | 280 +++++++++++++++++++++++++-- dist/cjs/runtime.cjs | 6 +- dist/esm/apis/OrganizationApi.d.ts | 31 +++ dist/esm/apis/OrganizationApi.js | 48 +++++ dist/esm/apis/PostApi.d.ts | 32 ++++ dist/esm/apis/PostApi.js | 51 +++++ dist/esm/apis/RankingApi.d.ts | 30 ++- dist/esm/apis/RankingApi.js | 64 +++++++ dist/esm/apis/SearchApi.d.ts | 6 +- dist/esm/apis/TagApi.d.ts | 44 +++++ dist/esm/apis/TagApi.js | 74 ++++++++ dist/esm/apis/UserApi.d.ts | 54 +++++- dist/esm/apis/UserApi.js | 116 ++++++++++++ dist/esm/apis/index.d.ts | 3 + dist/esm/apis/index.js | 3 + dist/esm/models/index.d.ts | 280 +++++++++++++++++++++++++-- dist/esm/models/index.js | 15 ++ src/cjs/.openapi-generator/FILES | 3 + src/cjs/apis/OrganizationApi.cts | 69 +++++++ src/cjs/apis/PostApi.cts | 75 ++++++++ src/cjs/apis/RankingApi.cts | 97 ++++++++++ src/cjs/apis/SearchApi.cts | 6 +- src/cjs/apis/TagApi.cts | 106 +++++++++++ src/cjs/apis/UserApi.cts | 176 +++++++++++++++++ src/cjs/apis/index.cts | 3 + src/cjs/models/index.cts | 283 ++++++++++++++++++++++++++-- src/esm/.openapi-generator/FILES | 3 + src/esm/apis/OrganizationApi.ts | 69 +++++++ src/esm/apis/PostApi.ts | 75 ++++++++ src/esm/apis/RankingApi.ts | 97 ++++++++++ src/esm/apis/SearchApi.ts | 6 +- src/esm/apis/TagApi.ts | 106 +++++++++++ src/esm/apis/UserApi.ts | 176 +++++++++++++++++ src/esm/apis/index.ts | 3 + src/esm/apis/mod.ts | 3 + src/esm/models/index.ts | 283 ++++++++++++++++++++++++++-- src/esm/models/mod.ts | 283 ++++++++++++++++++++++++++-- 51 files changed, 3598 insertions(+), 115 deletions(-) create mode 100644 dist/cjs/apis/OrganizationApi.cjs create mode 100644 dist/cjs/apis/OrganizationApi.d.cts create mode 100644 dist/cjs/apis/PostApi.cjs create mode 100644 dist/cjs/apis/PostApi.d.cts create mode 100644 dist/cjs/apis/TagApi.cjs create mode 100644 dist/cjs/apis/TagApi.d.cts create mode 100644 dist/esm/apis/OrganizationApi.d.ts create mode 100644 dist/esm/apis/OrganizationApi.js create mode 100644 dist/esm/apis/PostApi.d.ts create mode 100644 dist/esm/apis/PostApi.js create mode 100644 dist/esm/apis/TagApi.d.ts create mode 100644 dist/esm/apis/TagApi.js create mode 100644 src/cjs/apis/OrganizationApi.cts create mode 100644 src/cjs/apis/PostApi.cts create mode 100644 src/cjs/apis/TagApi.cts create mode 100644 src/esm/apis/OrganizationApi.ts create mode 100644 src/esm/apis/PostApi.ts create mode 100644 src/esm/apis/TagApi.ts diff --git a/dist/cjs/apis/OrganizationApi.cjs b/dist/cjs/apis/OrganizationApi.cjs new file mode 100644 index 0000000..3f74204 --- /dev/null +++ b/dist/cjs/apis/OrganizationApi.cjs @@ -0,0 +1,75 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OrganizationApi = void 0; +const runtime = __importStar(require("../runtime.cjs")); +/** + * + */ +class OrganizationApi extends runtime.BaseAPI { + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationByIdRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getOrganizationById().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/organization/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationById(requestParameters, initOverrides) { + const response = await this.getOrganizationByIdRaw(requestParameters, initOverrides); + return await response.value(); + } +} +exports.OrganizationApi = OrganizationApi; diff --git a/dist/cjs/apis/OrganizationApi.d.cts b/dist/cjs/apis/OrganizationApi.d.cts new file mode 100644 index 0000000..7e0bf3d --- /dev/null +++ b/dist/cjs/apis/OrganizationApi.d.cts @@ -0,0 +1,31 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.cjs'; +import type { Organization } from '../models/index.cjs'; +export interface GetOrganizationByIdRequest { + organizationId: string; +} +/** + * + */ +export declare class OrganizationApi extends runtime.BaseAPI { + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + getOrganizationByIdRaw(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + getOrganizationById(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/cjs/apis/PostApi.cjs b/dist/cjs/apis/PostApi.cjs new file mode 100644 index 0000000..5f36ecf --- /dev/null +++ b/dist/cjs/apis/PostApi.cjs @@ -0,0 +1,78 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PostApi = void 0; +const runtime = __importStar(require("../runtime.cjs")); +/** + * + */ +class PostApi extends runtime.BaseAPI { + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostByIdRaw(requestParameters, initOverrides) { + if (requestParameters['postId'] == null) { + throw new runtime.RequiredError('postId', 'Required parameter "postId" was null or undefined when calling getPostById().'); + } + const queryParameters = {}; + if (requestParameters['postId'] != null) { + queryParameters['postId'] = requestParameters['postId']; + } + const headerParameters = {}; + if (requestParameters['xSolvedacLanguage'] != null) { + headerParameters['x-solvedac-language'] = String(requestParameters['xSolvedacLanguage']); + } + const response = await this.request({ + path: `/post/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostById(requestParameters, initOverrides) { + const response = await this.getPostByIdRaw(requestParameters, initOverrides); + return await response.value(); + } +} +exports.PostApi = PostApi; diff --git a/dist/cjs/apis/PostApi.d.cts b/dist/cjs/apis/PostApi.d.cts new file mode 100644 index 0000000..f096b81 --- /dev/null +++ b/dist/cjs/apis/PostApi.d.cts @@ -0,0 +1,32 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.cjs'; +import type { Language, Post } from '../models/index.cjs'; +export interface GetPostByIdRequest { + postId: string; + xSolvedacLanguage?: Language; +} +/** + * + */ +export declare class PostApi extends runtime.BaseAPI { + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + getPostByIdRaw(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + getPostById(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/cjs/apis/RankingApi.cjs b/dist/cjs/apis/RankingApi.cjs index cb20b2c..1547637 100644 --- a/dist/cjs/apis/RankingApi.cjs +++ b/dist/cjs/apis/RankingApi.cjs @@ -71,6 +71,70 @@ class RankingApi extends runtime.BaseAPI { const response = await this.getOrganizationRankingByACRatingRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getRankingByACRatingInOrganization().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/ranking/in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganization(requestParameters, initOverrides) { + const response = await this.getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getRankingByArenaRatingInOrganization().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/ranking/arena_in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganization(requestParameters, initOverrides) { + const response = await this.getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/dist/cjs/apis/RankingApi.d.cts b/dist/cjs/apis/RankingApi.d.cts index 3ff49f2..34848c4 100644 --- a/dist/cjs/apis/RankingApi.d.cts +++ b/dist/cjs/apis/RankingApi.d.cts @@ -10,11 +10,19 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.cjs'; -import type { GetOrganizationRankingByACRating200Response, GetRankingByClass200Response, Language, OrganizationType } from '../models/index.cjs'; +import type { GetOrganizationRankingByACRating200Response, GetRankingByArenaRatingInOrganization200Response, GetRankingByClass200Response, Language, OrganizationType } from '../models/index.cjs'; export interface GetOrganizationRankingByACRatingRequest { type?: OrganizationType; page?: number; } +export interface GetRankingByACRatingInOrganizationRequest { + organizationId: number; + page?: number; +} +export interface GetRankingByArenaRatingInOrganizationRequest { + organizationId: number; + page?: number; +} export interface GetRankingByClassRequest { xSolvedacLanguage?: Language; page?: number; @@ -53,6 +61,26 @@ export declare class RankingApi extends runtime.BaseAPI { * 문제풀이 레이팅 순 단체 랭킹 가져오기 */ getOrganizationRankingByACRating(requestParameters?: GetOrganizationRankingByACRatingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByACRatingInOrganizationRaw(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByACRatingInOrganization(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByArenaRatingInOrganizationRaw(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByArenaRatingInOrganization(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/dist/cjs/apis/SearchApi.d.cts b/dist/cjs/apis/SearchApi.d.cts index b76400e..51cb226 100644 --- a/dist/cjs/apis/SearchApi.d.cts +++ b/dist/cjs/apis/SearchApi.d.cts @@ -10,7 +10,7 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.cjs'; -import type { GetProblemsByIdList200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response, SearchUser200Response } from '../models/index.cjs'; +import type { GetProblemsByIdList200Response, GetRankingByArenaRatingInOrganization200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response } from '../models/index.cjs'; export interface GetSearchAutoCompletionsRequest { query: string; xSolvedacLanguage?: Language; @@ -70,10 +70,10 @@ export declare class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } diff --git a/dist/cjs/apis/TagApi.cjs b/dist/cjs/apis/TagApi.cjs new file mode 100644 index 0000000..c999573 --- /dev/null +++ b/dist/cjs/apis/TagApi.cjs @@ -0,0 +1,101 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TagApi = void 0; +const runtime = __importStar(require("../runtime.cjs")); +/** + * + */ +class TagApi extends runtime.BaseAPI { + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKeyRaw(requestParameters, initOverrides) { + if (requestParameters['key'] == null) { + throw new runtime.RequiredError('key', 'Required parameter "key" was null or undefined when calling getTagByKey().'); + } + const queryParameters = {}; + if (requestParameters['key'] != null) { + queryParameters['key'] = requestParameters['key']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/tag/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKey(requestParameters, initOverrides) { + const response = await this.getTagByKeyRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagListRaw(requestParameters, initOverrides) { + const queryParameters = {}; + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/tag/list`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagList(requestParameters = {}, initOverrides) { + const response = await this.getTagListRaw(requestParameters, initOverrides); + return await response.value(); + } +} +exports.TagApi = TagApi; diff --git a/dist/cjs/apis/TagApi.d.cts b/dist/cjs/apis/TagApi.d.cts new file mode 100644 index 0000000..db55678 --- /dev/null +++ b/dist/cjs/apis/TagApi.d.cts @@ -0,0 +1,44 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.cjs'; +import type { ProblemTag, SearchProblemTag200Response } from '../models/index.cjs'; +export interface GetTagByKeyRequest { + key: string; +} +export interface GetTagListRequest { + page?: number; +} +/** + * + */ +export declare class TagApi extends runtime.BaseAPI { + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + getTagByKeyRaw(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + getTagByKey(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + getTagListRaw(requestParameters: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + getTagList(requestParameters?: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/cjs/apis/UserApi.cjs b/dist/cjs/apis/UserApi.cjs index b1349f3..5949768 100644 --- a/dist/cjs/apis/UserApi.cjs +++ b/dist/cjs/apis/UserApi.cjs @@ -42,6 +42,35 @@ const runtime = __importStar(require("../runtime.cjs")); * */ class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfoRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserAdditionalInfo().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/additional_info`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfo(requestParameters, initOverrides) { + const response = await this.getUserAdditionalInfoRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -74,6 +103,64 @@ class UserApi extends runtime.BaseAPI { const response = await this.getUserByHandleRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserClassStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/class_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStats(requestParameters, initOverrides) { + const response = await this.getUserClassStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserContributionStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/contribution_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStats(requestParameters, initOverrides) { + const response = await this.getUserContributionStatsRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -132,6 +219,35 @@ class UserApi extends runtime.BaseAPI { const response = await this.getUserProblemStatsRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserProblemTagStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/problem_tag_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStats(requestParameters, initOverrides) { + const response = await this.getUserProblemTagStatsRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/dist/cjs/apis/UserApi.d.cts b/dist/cjs/apis/UserApi.d.cts index 62204a2..75101e6 100644 --- a/dist/cjs/apis/UserApi.d.cts +++ b/dist/cjs/apis/UserApi.d.cts @@ -10,17 +10,29 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.cjs'; -import type { GetProblemsByIdList200Response, GetUserProblemStatsProblemStat, Language, Organization, SocialUser } from '../models/index.cjs'; +import type { GetProblemsByIdList200Response, GetUserClassStatsClassStat, GetUserContributionStatsContributionStat, GetUserProblemStatsProblemStat, GetUserProblemTagStats200Response, Language, Organization, SocialUser, UserAdditionalInfo } from '../models/index.cjs'; +export interface GetUserAdditionalInfoRequest { + handle: string; +} export interface GetUserByHandleRequest { handle: string; xSolvedacLanguage?: Language; } +export interface GetUserClassStatsRequest { + handle: string; +} +export interface GetUserContributionStatsRequest { + handle: string; +} export interface GetUserOrganizationsRequest { handle: string; } export interface GetUserProblemStatsRequest { handle: string; } +export interface GetUserProblemTagStatsRequest { + handle: string; +} export interface GetUserTop100Request { handle: string; xSolvedacLanguage?: Language; @@ -29,6 +41,16 @@ export interface GetUserTop100Request { * */ export declare class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + getUserAdditionalInfoRaw(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + getUserAdditionalInfo(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -39,6 +61,26 @@ export declare class UserApi extends runtime.BaseAPI { * 사용자 핸들로 정보 가져오기 */ getUserByHandle(requestParameters: GetUserByHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + getUserClassStatsRaw(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + getUserClassStats(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + getUserContributionStatsRaw(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + getUserContributionStats(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -59,6 +101,16 @@ export declare class UserApi extends runtime.BaseAPI { * 문제 수준별로 사용자가 푼 문제 수 가져오기 */ getUserProblemStats(requestParameters: GetUserProblemStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + getUserProblemTagStatsRaw(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + getUserProblemTagStats(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/dist/cjs/apis/index.cjs b/dist/cjs/apis/index.cjs index e7ed71b..a0ef77f 100644 --- a/dist/cjs/apis/index.cjs +++ b/dist/cjs/apis/index.cjs @@ -20,8 +20,11 @@ __exportStar(require("./AccountApi.cjs"), exports); __exportStar(require("./BackgroundApi.cjs"), exports); __exportStar(require("./BadgeApi.cjs"), exports); __exportStar(require("./CoinsApi.cjs"), exports); +__exportStar(require("./OrganizationApi.cjs"), exports); __exportStar(require("./OtherApi.cjs"), exports); +__exportStar(require("./PostApi.cjs"), exports); __exportStar(require("./ProblemApi.cjs"), exports); __exportStar(require("./RankingApi.cjs"), exports); __exportStar(require("./SearchApi.cjs"), exports); +__exportStar(require("./TagApi.cjs"), exports); __exportStar(require("./UserApi.cjs"), exports); diff --git a/dist/cjs/apis/index.d.cts b/dist/cjs/apis/index.d.cts index 851f723..587606d 100644 --- a/dist/cjs/apis/index.d.cts +++ b/dist/cjs/apis/index.d.cts @@ -2,8 +2,11 @@ export * from './AccountApi.cjs'; export * from './BackgroundApi.cjs'; export * from './BadgeApi.cjs'; export * from './CoinsApi.cjs'; +export * from './OrganizationApi.cjs'; export * from './OtherApi.cjs'; +export * from './PostApi.cjs'; export * from './ProblemApi.cjs'; export * from './RankingApi.cjs'; export * from './SearchApi.cjs'; +export * from './TagApi.cjs'; export * from './UserApi.cjs'; diff --git a/dist/cjs/models/index.cjs b/dist/cjs/models/index.cjs index 111d8ba..76062fd 100644 --- a/dist/cjs/models/index.cjs +++ b/dist/cjs/models/index.cjs @@ -2,7 +2,7 @@ /* tslint:disable */ /* eslint-disable */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.VerifyCredentialsUserWithSettingsClassDecorationEnum = exports.VerifyCredentialsUserWithSettingsClassEnum = exports.VerifyCredentialsUserSettingsShowMovieBackgroundEnum = exports.VerifyCredentialsUserSettingsShowIllustBackgroundEnum = exports.VerifyCredentialsUserSettingsSiteLanguageEnum = exports.VerifyCredentialsUserSettingsProHideAdsEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnClassIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnTierIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnRatingIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostHandleEnum = exports.VerifyCredentialsUserSettingsScreenThemeEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnProblemSolveEnum = exports.UserClassDecorationEnum = exports.UserClassEnum = exports.SolveTier = exports.SocialUserClassDecorationEnum = exports.SocialUserClassEnum = exports.SearchProblemQuerySort = exports.SearchProblemQueryDirection = exports.RivalUserClassDecorationEnum = exports.RivalUserClassEnum = exports.ProblemLevel = exports.OrganizationType = exports.Language = exports.GetSearchAutoCompletionsUserEntryClassDecorationEnum = exports.GetSearchAutoCompletionsUserEntryClassEnum = exports.GetClassesProblemCountClassEntryClassEnum = exports.CoinShopProductPriceUnitEnum = exports.BadgeTier = exports.BadgeCategory = exports.BackgroundCategory = exports.ArenaTier = void 0; +exports.VerifyCredentialsUserWithSettingsClassDecorationEnum = exports.VerifyCredentialsUserWithSettingsClassEnum = exports.VerifyCredentialsUserSettingsShowMovieBackgroundEnum = exports.VerifyCredentialsUserSettingsShowIllustBackgroundEnum = exports.VerifyCredentialsUserSettingsSiteLanguageEnum = exports.VerifyCredentialsUserSettingsProHideAdsEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnClassIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnTierIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnRatingIncreaseEnum = exports.VerifyCredentialsUserSettingsTwitterPostHandleEnum = exports.VerifyCredentialsUserSettingsScreenThemeEnum = exports.VerifyCredentialsUserSettingsTwitterPostOnProblemSolveEnum = exports.UserClassDecorationEnum = exports.UserClassEnum = exports.SolveTier = exports.SocialUserClassDecorationEnum = exports.SocialUserClassEnum = exports.SearchProblemQuerySort = exports.SearchProblemQueryDirection = exports.RivalUserClassDecorationEnum = exports.RivalUserClassEnum = exports.ProblemLevel = exports.OrganizationType = exports.Language = exports.GetUserClassStatsClassStatClassEnum = exports.GetSearchAutoCompletionsUserEntryClassDecorationEnum = exports.GetSearchAutoCompletionsUserEntryClassEnum = exports.GetClassesProblemCountClassEntryClassEnum = exports.CoinShopProductPriceUnitEnum = exports.BadgeTier = exports.BadgeCategory = exports.BackgroundCategory = exports.ArenaTier = void 0; /** * Unrated를 0, * C를 1, @@ -129,6 +129,21 @@ exports.GetSearchAutoCompletionsUserEntryClassDecorationEnum = { Silver: 'silver', Gold: 'gold' }; +/** + * @export + */ +exports.GetUserClassStatsClassStatClassEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4, + NUMBER_5: 5, + NUMBER_6: 6, + NUMBER_7: 7, + NUMBER_8: 8, + NUMBER_9: 9, + NUMBER_10: 10 +}; /** * solved.ac에서 지원하는 사용자 언어입니다 * @export diff --git a/dist/cjs/models/index.d.cts b/dist/cjs/models/index.d.cts index e19e4ba..34a7aa1 100644 --- a/dist/cjs/models/index.d.cts +++ b/dist/cjs/models/index.d.cts @@ -542,6 +542,25 @@ export interface GetProblemsCountGroupByLevelLevelEntry { */ count: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetRankingByArenaRatingInOrganization200Response + */ +export interface GetRankingByArenaRatingInOrganization200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + items: Array; +} /** * 페이지네이션 가능한 쿼리의 응답 결과입니다. * @export @@ -930,6 +949,96 @@ export declare const GetSearchAutoCompletionsUserEntryClassDecorationEnum: { readonly Gold: "gold"; }; export type GetSearchAutoCompletionsUserEntryClassDecorationEnum = typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum[keyof typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum]; +/** + * + * @export + * @interface GetUserClassStatsClassStat + */ +export interface GetUserClassStatsClassStat { + /** + * 클래스 번호입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + _class: GetUserClassStatsClassStatClassEnum; + /** + * solved.ac에 등록된 해당 클래스의 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + total: number; + /** + * 사용자가 푼 클래스 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + totalSolved: number; + /** + * solved.ac에 등록된 해당 클래스의 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentials: number; + /** + * 사용자가 푼 클래스 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentialSolved: number; + /** + * 사용자가 획득한 클래스 치장입니다. + * @type {string} + * @memberof GetUserClassStatsClassStat + */ + decoration: string; +} +/** + * @export + */ +export declare const GetUserClassStatsClassStatClassEnum: { + readonly NUMBER_1: 1; + readonly NUMBER_2: 2; + readonly NUMBER_3: 3; + readonly NUMBER_4: 4; + readonly NUMBER_5: 5; + readonly NUMBER_6: 6; + readonly NUMBER_7: 7; + readonly NUMBER_8: 8; + readonly NUMBER_9: 9; + readonly NUMBER_10: 10; +}; +export type GetUserClassStatsClassStatClassEnum = typeof GetUserClassStatsClassStatClassEnum[keyof typeof GetUserClassStatsClassStatClassEnum]; +/** + * + * @export + * @interface GetUserContributionStatsContributionStat + */ +export interface GetUserContributionStatsContributionStat { + /** + * solved.ac에 등록된 해당 수준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solved: number; + /** + * 사용자가 푼 표준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solvedStandards: number; + /** + * 사용자가 기여한 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + contributed: number; +} /** * * @export @@ -967,6 +1076,62 @@ export interface GetUserProblemStatsProblemStat { */ tried: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetUserProblemTagStats200Response + */ +export interface GetUserProblemTagStats200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetUserProblemTagStats200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetUserProblemTagStats200Response + */ + items: Array; +} +/** + * + * @export + * @interface GetUserProblemTagStatsProblemTagStat + */ +export interface GetUserProblemTagStatsProblemTagStat { + /** + * + * @type {ProblemTag} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tag: ProblemTag; + /** + * solved.ac에 등록된 해당 태그 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + solved: number; + /** + * 사용자가 부분 성공한 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + partial: number; + /** + * 사용자가 시도해 본 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tried: number; +} /** * 사용자가 사용할 수 있는 아이템입니다. * @export @@ -1090,6 +1255,43 @@ export declare const OrganizationType: { readonly Undefined: "undefined"; }; export type OrganizationType = typeof OrganizationType[keyof typeof OrganizationType]; +/** + * solved.ac의 게시글입니다. + * @export + * @interface Post + */ +export interface Post { + /** + * 게시글의 아이디입니다. + * @type {string} + * @memberof Post + */ + postId: string; + /** + * 게시글의 제목입니다. + * @type {string} + * @memberof Post + */ + title: string; + /** + * 게시글의 내용입니다. + * @type {string} + * @memberof Post + */ + content: string; + /** + * 게시글이 작성된 언어입니다. + * @type {string} + * @memberof Post + */ + language: string; + /** + * 게시글 내용의 타입입니다. + * @type {string} + * @memberof Post + */ + type: string; +} /** * 문제 정보입니다. * @export @@ -1670,25 +1872,6 @@ export interface SearchProblemTag200Response { */ items: Array; } -/** - * 페이지네이션 가능한 쿼리의 응답 결과입니다. - * @export - * @interface SearchUser200Response - */ -export interface SearchUser200Response { - /** - * 전체 원소 수입니다. - * @type {number} - * @memberof SearchUser200Response - */ - count: number; - /** - * 현재 페이지의 원소 목록입니다. - * @type {Array} - * @memberof SearchUser200Response - */ - items: Array; -} /** * solved.ac 사이트의 통계 정보입니다. * @export @@ -2289,6 +2472,65 @@ export declare const UserClassDecorationEnum: { readonly Gold: "gold"; }; export type UserClassDecorationEnum = typeof UserClassDecorationEnum[keyof typeof UserClassDecorationEnum]; +/** + * solved.ac 사용자 부가 정보입니다. + * @export + * @interface UserAdditionalInfo + */ +export interface UserAdditionalInfo { + /** + * 사용자의 국가/지역 코드입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + countryCode: string; + /** + * 사용자의 성별입니다. + * - 0: 선택 안 함 + * - 1: 남성 + * - 2: 여성 + * - 9: 기타 + * @type {number} + * @memberof UserAdditionalInfo + */ + gender: number; + /** + * 사용자를 영어로 표기할 때 사용하는 대명사입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + pronouns: string; + /** + * 사용자의 생년입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthYear: number; + /** + * 사용자의 생월입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthMonth: number; + /** + * 사용자의 생일입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthDay: number; + /** + * 사용자의 영어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + name: string; + /** + * 사용자의 모국어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + nameNative: string; +} /** * 사용자 동의 여부입니다. * @export diff --git a/dist/cjs/runtime.cjs b/dist/cjs/runtime.cjs index d6f3fb0..e353483 100644 --- a/dist/cjs/runtime.cjs +++ b/dist/cjs/runtime.cjs @@ -13,7 +13,9 @@ * Do not edit the class manually. */ Object.defineProperty(exports, "__esModule", { value: true }); -exports.TextApiResponse = exports.BlobApiResponse = exports.VoidApiResponse = exports.JSONApiResponse = exports.canConsumeForm = exports.querystring = exports.COLLECTION_FORMATS = exports.RequiredError = exports.FetchError = exports.ResponseError = exports.BaseAPI = exports.DefaultConfig = exports.Configuration = exports.BASE_PATH = void 0; +exports.TextApiResponse = exports.BlobApiResponse = exports.VoidApiResponse = exports.JSONApiResponse = exports.COLLECTION_FORMATS = exports.RequiredError = exports.FetchError = exports.ResponseError = exports.BaseAPI = exports.DefaultConfig = exports.Configuration = exports.BASE_PATH = void 0; +exports.querystring = querystring; +exports.canConsumeForm = canConsumeForm; exports.BASE_PATH = "https://solved.ac/api/v3".replace(/\/+$/, ""); class Configuration { constructor(configuration = {}) { @@ -246,7 +248,6 @@ function querystring(params, prefix = '') { .filter(part => part.length > 0) .join('&'); } -exports.querystring = querystring; function querystringSingleKey(key, value, keyPrefix = '') { const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key); if (value instanceof Array) { @@ -274,7 +275,6 @@ function canConsumeForm(consumes) { } return false; } -exports.canConsumeForm = canConsumeForm; class JSONApiResponse { constructor(raw, transformer = (jsonValue) => jsonValue) { this.raw = raw; diff --git a/dist/esm/apis/OrganizationApi.d.ts b/dist/esm/apis/OrganizationApi.d.ts new file mode 100644 index 0000000..dc7693a --- /dev/null +++ b/dist/esm/apis/OrganizationApi.d.ts @@ -0,0 +1,31 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +import type { Organization } from '../models/index.js'; +export interface GetOrganizationByIdRequest { + organizationId: string; +} +/** + * + */ +export declare class OrganizationApi extends runtime.BaseAPI { + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + getOrganizationByIdRaw(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + getOrganizationById(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/esm/apis/OrganizationApi.js b/dist/esm/apis/OrganizationApi.js new file mode 100644 index 0000000..7950ef7 --- /dev/null +++ b/dist/esm/apis/OrganizationApi.js @@ -0,0 +1,48 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +/** + * + */ +export class OrganizationApi extends runtime.BaseAPI { + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationByIdRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getOrganizationById().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/organization/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationById(requestParameters, initOverrides) { + const response = await this.getOrganizationByIdRaw(requestParameters, initOverrides); + return await response.value(); + } +} diff --git a/dist/esm/apis/PostApi.d.ts b/dist/esm/apis/PostApi.d.ts new file mode 100644 index 0000000..34baeb8 --- /dev/null +++ b/dist/esm/apis/PostApi.d.ts @@ -0,0 +1,32 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +import type { Language, Post } from '../models/index.js'; +export interface GetPostByIdRequest { + postId: string; + xSolvedacLanguage?: Language; +} +/** + * + */ +export declare class PostApi extends runtime.BaseAPI { + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + getPostByIdRaw(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + getPostById(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/esm/apis/PostApi.js b/dist/esm/apis/PostApi.js new file mode 100644 index 0000000..d3dc267 --- /dev/null +++ b/dist/esm/apis/PostApi.js @@ -0,0 +1,51 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +/** + * + */ +export class PostApi extends runtime.BaseAPI { + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostByIdRaw(requestParameters, initOverrides) { + if (requestParameters['postId'] == null) { + throw new runtime.RequiredError('postId', 'Required parameter "postId" was null or undefined when calling getPostById().'); + } + const queryParameters = {}; + if (requestParameters['postId'] != null) { + queryParameters['postId'] = requestParameters['postId']; + } + const headerParameters = {}; + if (requestParameters['xSolvedacLanguage'] != null) { + headerParameters['x-solvedac-language'] = String(requestParameters['xSolvedacLanguage']); + } + const response = await this.request({ + path: `/post/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostById(requestParameters, initOverrides) { + const response = await this.getPostByIdRaw(requestParameters, initOverrides); + return await response.value(); + } +} diff --git a/dist/esm/apis/RankingApi.d.ts b/dist/esm/apis/RankingApi.d.ts index 1cc6933..b64fe45 100644 --- a/dist/esm/apis/RankingApi.d.ts +++ b/dist/esm/apis/RankingApi.d.ts @@ -10,11 +10,19 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.js'; -import type { GetOrganizationRankingByACRating200Response, GetRankingByClass200Response, Language, OrganizationType } from '../models/index.js'; +import type { GetOrganizationRankingByACRating200Response, GetRankingByArenaRatingInOrganization200Response, GetRankingByClass200Response, Language, OrganizationType } from '../models/index.js'; export interface GetOrganizationRankingByACRatingRequest { type?: OrganizationType; page?: number; } +export interface GetRankingByACRatingInOrganizationRequest { + organizationId: number; + page?: number; +} +export interface GetRankingByArenaRatingInOrganizationRequest { + organizationId: number; + page?: number; +} export interface GetRankingByClassRequest { xSolvedacLanguage?: Language; page?: number; @@ -53,6 +61,26 @@ export declare class RankingApi extends runtime.BaseAPI { * 문제풀이 레이팅 순 단체 랭킹 가져오기 */ getOrganizationRankingByACRating(requestParameters?: GetOrganizationRankingByACRatingRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByACRatingInOrganizationRaw(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByACRatingInOrganization(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByArenaRatingInOrganizationRaw(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + getRankingByArenaRatingInOrganization(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/dist/esm/apis/RankingApi.js b/dist/esm/apis/RankingApi.js index 597a0b6..85ceaf2 100644 --- a/dist/esm/apis/RankingApi.js +++ b/dist/esm/apis/RankingApi.js @@ -45,6 +45,70 @@ export class RankingApi extends runtime.BaseAPI { const response = await this.getOrganizationRankingByACRatingRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getRankingByACRatingInOrganization().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/ranking/in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganization(requestParameters, initOverrides) { + const response = await this.getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides) { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError('organizationId', 'Required parameter "organizationId" was null or undefined when calling getRankingByArenaRatingInOrganization().'); + } + const queryParameters = {}; + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/ranking/arena_in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganization(requestParameters, initOverrides) { + const response = await this.getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/dist/esm/apis/SearchApi.d.ts b/dist/esm/apis/SearchApi.d.ts index c3398b6..04eb350 100644 --- a/dist/esm/apis/SearchApi.d.ts +++ b/dist/esm/apis/SearchApi.d.ts @@ -10,7 +10,7 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.js'; -import type { GetProblemsByIdList200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response, SearchUser200Response } from '../models/index.js'; +import type { GetProblemsByIdList200Response, GetRankingByArenaRatingInOrganization200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response } from '../models/index.js'; export interface GetSearchAutoCompletionsRequest { query: string; xSolvedacLanguage?: Language; @@ -70,10 +70,10 @@ export declare class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } diff --git a/dist/esm/apis/TagApi.d.ts b/dist/esm/apis/TagApi.d.ts new file mode 100644 index 0000000..79cf82e --- /dev/null +++ b/dist/esm/apis/TagApi.d.ts @@ -0,0 +1,44 @@ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +import type { ProblemTag, SearchProblemTag200Response } from '../models/index.js'; +export interface GetTagByKeyRequest { + key: string; +} +export interface GetTagListRequest { + page?: number; +} +/** + * + */ +export declare class TagApi extends runtime.BaseAPI { + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + getTagByKeyRaw(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + getTagByKey(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + getTagListRaw(requestParameters: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + getTagList(requestParameters?: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; +} diff --git a/dist/esm/apis/TagApi.js b/dist/esm/apis/TagApi.js new file mode 100644 index 0000000..1b4efb1 --- /dev/null +++ b/dist/esm/apis/TagApi.js @@ -0,0 +1,74 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import * as runtime from '../runtime.js'; +/** + * + */ +export class TagApi extends runtime.BaseAPI { + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKeyRaw(requestParameters, initOverrides) { + if (requestParameters['key'] == null) { + throw new runtime.RequiredError('key', 'Required parameter "key" was null or undefined when calling getTagByKey().'); + } + const queryParameters = {}; + if (requestParameters['key'] != null) { + queryParameters['key'] = requestParameters['key']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/tag/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKey(requestParameters, initOverrides) { + const response = await this.getTagByKeyRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagListRaw(requestParameters, initOverrides) { + const queryParameters = {}; + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/tag/list`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagList(requestParameters = {}, initOverrides) { + const response = await this.getTagListRaw(requestParameters, initOverrides); + return await response.value(); + } +} diff --git a/dist/esm/apis/UserApi.d.ts b/dist/esm/apis/UserApi.d.ts index b242ffa..bca6728 100644 --- a/dist/esm/apis/UserApi.d.ts +++ b/dist/esm/apis/UserApi.d.ts @@ -10,17 +10,29 @@ * Do not edit the class manually. */ import * as runtime from '../runtime.js'; -import type { GetProblemsByIdList200Response, GetUserProblemStatsProblemStat, Language, Organization, SocialUser } from '../models/index.js'; +import type { GetProblemsByIdList200Response, GetUserClassStatsClassStat, GetUserContributionStatsContributionStat, GetUserProblemStatsProblemStat, GetUserProblemTagStats200Response, Language, Organization, SocialUser, UserAdditionalInfo } from '../models/index.js'; +export interface GetUserAdditionalInfoRequest { + handle: string; +} export interface GetUserByHandleRequest { handle: string; xSolvedacLanguage?: Language; } +export interface GetUserClassStatsRequest { + handle: string; +} +export interface GetUserContributionStatsRequest { + handle: string; +} export interface GetUserOrganizationsRequest { handle: string; } export interface GetUserProblemStatsRequest { handle: string; } +export interface GetUserProblemTagStatsRequest { + handle: string; +} export interface GetUserTop100Request { handle: string; xSolvedacLanguage?: Language; @@ -29,6 +41,16 @@ export interface GetUserTop100Request { * */ export declare class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + getUserAdditionalInfoRaw(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + getUserAdditionalInfo(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -39,6 +61,26 @@ export declare class UserApi extends runtime.BaseAPI { * 사용자 핸들로 정보 가져오기 */ getUserByHandle(requestParameters: GetUserByHandleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + getUserClassStatsRaw(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + getUserClassStats(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + getUserContributionStatsRaw(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + getUserContributionStats(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -59,6 +101,16 @@ export declare class UserApi extends runtime.BaseAPI { * 문제 수준별로 사용자가 푼 문제 수 가져오기 */ getUserProblemStats(requestParameters: GetUserProblemStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + getUserProblemTagStatsRaw(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + getUserProblemTagStats(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/dist/esm/apis/UserApi.js b/dist/esm/apis/UserApi.js index 648e7e4..41cdfc0 100644 --- a/dist/esm/apis/UserApi.js +++ b/dist/esm/apis/UserApi.js @@ -16,6 +16,35 @@ import * as runtime from '../runtime.js'; * */ export class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfoRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserAdditionalInfo().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/additional_info`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfo(requestParameters, initOverrides) { + const response = await this.getUserAdditionalInfoRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -48,6 +77,64 @@ export class UserApi extends runtime.BaseAPI { const response = await this.getUserByHandleRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserClassStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/class_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStats(requestParameters, initOverrides) { + const response = await this.getUserClassStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserContributionStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/contribution_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStats(requestParameters, initOverrides) { + const response = await this.getUserContributionStatsRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -106,6 +193,35 @@ export class UserApi extends runtime.BaseAPI { const response = await this.getUserProblemStatsRaw(requestParameters, initOverrides); return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStatsRaw(requestParameters, initOverrides) { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError('handle', 'Required parameter "handle" was null or undefined when calling getUserProblemTagStats().'); + } + const queryParameters = {}; + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + const headerParameters = {}; + const response = await this.request({ + path: `/user/problem_tag_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + return new runtime.JSONApiResponse(response); + } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStats(requestParameters, initOverrides) { + const response = await this.getUserProblemTagStatsRaw(requestParameters, initOverrides); + return await response.value(); + } /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/dist/esm/apis/index.d.ts b/dist/esm/apis/index.d.ts index 00ebfa1..2481fe7 100644 --- a/dist/esm/apis/index.d.ts +++ b/dist/esm/apis/index.d.ts @@ -2,8 +2,11 @@ export * from './AccountApi.js'; export * from './BackgroundApi.js'; export * from './BadgeApi.js'; export * from './CoinsApi.js'; +export * from './OrganizationApi.js'; export * from './OtherApi.js'; +export * from './PostApi.js'; export * from './ProblemApi.js'; export * from './RankingApi.js'; export * from './SearchApi.js'; +export * from './TagApi.js'; export * from './UserApi.js'; diff --git a/dist/esm/apis/index.js b/dist/esm/apis/index.js index 1854d90..50542e5 100644 --- a/dist/esm/apis/index.js +++ b/dist/esm/apis/index.js @@ -4,8 +4,11 @@ export * from './AccountApi.js'; export * from './BackgroundApi.js'; export * from './BadgeApi.js'; export * from './CoinsApi.js'; +export * from './OrganizationApi.js'; export * from './OtherApi.js'; +export * from './PostApi.js'; export * from './ProblemApi.js'; export * from './RankingApi.js'; export * from './SearchApi.js'; +export * from './TagApi.js'; export * from './UserApi.js'; diff --git a/dist/esm/models/index.d.ts b/dist/esm/models/index.d.ts index e19e4ba..34a7aa1 100644 --- a/dist/esm/models/index.d.ts +++ b/dist/esm/models/index.d.ts @@ -542,6 +542,25 @@ export interface GetProblemsCountGroupByLevelLevelEntry { */ count: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetRankingByArenaRatingInOrganization200Response + */ +export interface GetRankingByArenaRatingInOrganization200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + items: Array; +} /** * 페이지네이션 가능한 쿼리의 응답 결과입니다. * @export @@ -930,6 +949,96 @@ export declare const GetSearchAutoCompletionsUserEntryClassDecorationEnum: { readonly Gold: "gold"; }; export type GetSearchAutoCompletionsUserEntryClassDecorationEnum = typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum[keyof typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum]; +/** + * + * @export + * @interface GetUserClassStatsClassStat + */ +export interface GetUserClassStatsClassStat { + /** + * 클래스 번호입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + _class: GetUserClassStatsClassStatClassEnum; + /** + * solved.ac에 등록된 해당 클래스의 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + total: number; + /** + * 사용자가 푼 클래스 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + totalSolved: number; + /** + * solved.ac에 등록된 해당 클래스의 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentials: number; + /** + * 사용자가 푼 클래스 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentialSolved: number; + /** + * 사용자가 획득한 클래스 치장입니다. + * @type {string} + * @memberof GetUserClassStatsClassStat + */ + decoration: string; +} +/** + * @export + */ +export declare const GetUserClassStatsClassStatClassEnum: { + readonly NUMBER_1: 1; + readonly NUMBER_2: 2; + readonly NUMBER_3: 3; + readonly NUMBER_4: 4; + readonly NUMBER_5: 5; + readonly NUMBER_6: 6; + readonly NUMBER_7: 7; + readonly NUMBER_8: 8; + readonly NUMBER_9: 9; + readonly NUMBER_10: 10; +}; +export type GetUserClassStatsClassStatClassEnum = typeof GetUserClassStatsClassStatClassEnum[keyof typeof GetUserClassStatsClassStatClassEnum]; +/** + * + * @export + * @interface GetUserContributionStatsContributionStat + */ +export interface GetUserContributionStatsContributionStat { + /** + * solved.ac에 등록된 해당 수준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solved: number; + /** + * 사용자가 푼 표준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solvedStandards: number; + /** + * 사용자가 기여한 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + contributed: number; +} /** * * @export @@ -967,6 +1076,62 @@ export interface GetUserProblemStatsProblemStat { */ tried: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetUserProblemTagStats200Response + */ +export interface GetUserProblemTagStats200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetUserProblemTagStats200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetUserProblemTagStats200Response + */ + items: Array; +} +/** + * + * @export + * @interface GetUserProblemTagStatsProblemTagStat + */ +export interface GetUserProblemTagStatsProblemTagStat { + /** + * + * @type {ProblemTag} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tag: ProblemTag; + /** + * solved.ac에 등록된 해당 태그 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + solved: number; + /** + * 사용자가 부분 성공한 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + partial: number; + /** + * 사용자가 시도해 본 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tried: number; +} /** * 사용자가 사용할 수 있는 아이템입니다. * @export @@ -1090,6 +1255,43 @@ export declare const OrganizationType: { readonly Undefined: "undefined"; }; export type OrganizationType = typeof OrganizationType[keyof typeof OrganizationType]; +/** + * solved.ac의 게시글입니다. + * @export + * @interface Post + */ +export interface Post { + /** + * 게시글의 아이디입니다. + * @type {string} + * @memberof Post + */ + postId: string; + /** + * 게시글의 제목입니다. + * @type {string} + * @memberof Post + */ + title: string; + /** + * 게시글의 내용입니다. + * @type {string} + * @memberof Post + */ + content: string; + /** + * 게시글이 작성된 언어입니다. + * @type {string} + * @memberof Post + */ + language: string; + /** + * 게시글 내용의 타입입니다. + * @type {string} + * @memberof Post + */ + type: string; +} /** * 문제 정보입니다. * @export @@ -1670,25 +1872,6 @@ export interface SearchProblemTag200Response { */ items: Array; } -/** - * 페이지네이션 가능한 쿼리의 응답 결과입니다. - * @export - * @interface SearchUser200Response - */ -export interface SearchUser200Response { - /** - * 전체 원소 수입니다. - * @type {number} - * @memberof SearchUser200Response - */ - count: number; - /** - * 현재 페이지의 원소 목록입니다. - * @type {Array} - * @memberof SearchUser200Response - */ - items: Array; -} /** * solved.ac 사이트의 통계 정보입니다. * @export @@ -2289,6 +2472,65 @@ export declare const UserClassDecorationEnum: { readonly Gold: "gold"; }; export type UserClassDecorationEnum = typeof UserClassDecorationEnum[keyof typeof UserClassDecorationEnum]; +/** + * solved.ac 사용자 부가 정보입니다. + * @export + * @interface UserAdditionalInfo + */ +export interface UserAdditionalInfo { + /** + * 사용자의 국가/지역 코드입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + countryCode: string; + /** + * 사용자의 성별입니다. + * - 0: 선택 안 함 + * - 1: 남성 + * - 2: 여성 + * - 9: 기타 + * @type {number} + * @memberof UserAdditionalInfo + */ + gender: number; + /** + * 사용자를 영어로 표기할 때 사용하는 대명사입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + pronouns: string; + /** + * 사용자의 생년입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthYear: number; + /** + * 사용자의 생월입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthMonth: number; + /** + * 사용자의 생일입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthDay: number; + /** + * 사용자의 영어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + name: string; + /** + * 사용자의 모국어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + nameNative: string; +} /** * 사용자 동의 여부입니다. * @export diff --git a/dist/esm/models/index.js b/dist/esm/models/index.js index 297ec62..9473e77 100644 --- a/dist/esm/models/index.js +++ b/dist/esm/models/index.js @@ -126,6 +126,21 @@ export const GetSearchAutoCompletionsUserEntryClassDecorationEnum = { Silver: 'silver', Gold: 'gold' }; +/** + * @export + */ +export const GetUserClassStatsClassStatClassEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4, + NUMBER_5: 5, + NUMBER_6: 6, + NUMBER_7: 7, + NUMBER_8: 8, + NUMBER_9: 9, + NUMBER_10: 10 +}; /** * solved.ac에서 지원하는 사용자 언어입니다 * @export diff --git a/src/cjs/.openapi-generator/FILES b/src/cjs/.openapi-generator/FILES index 430bc56..5b63d42 100644 --- a/src/cjs/.openapi-generator/FILES +++ b/src/cjs/.openapi-generator/FILES @@ -3,10 +3,13 @@ apis/AccountApi.ts apis/BackgroundApi.ts apis/BadgeApi.ts apis/CoinsApi.ts +apis/OrganizationApi.ts apis/OtherApi.ts +apis/PostApi.ts apis/ProblemApi.ts apis/RankingApi.ts apis/SearchApi.ts +apis/TagApi.ts apis/UserApi.ts apis/index.ts index.ts diff --git a/src/cjs/apis/OrganizationApi.cts b/src/cjs/apis/OrganizationApi.cts new file mode 100644 index 0000000..148d2cf --- /dev/null +++ b/src/cjs/apis/OrganizationApi.cts @@ -0,0 +1,69 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.cjs'; +import type { + Organization, +} from '../models/index.cjs'; + +export interface GetOrganizationByIdRequest { + organizationId: string; +} + +/** + * + */ +export class OrganizationApi extends runtime.BaseAPI { + + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationByIdRaw(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getOrganizationById().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/organization/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationById(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getOrganizationByIdRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/cjs/apis/PostApi.cts b/src/cjs/apis/PostApi.cts new file mode 100644 index 0000000..81ee3d8 --- /dev/null +++ b/src/cjs/apis/PostApi.cts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.cjs'; +import type { + Language, + Post, +} from '../models/index.cjs'; + +export interface GetPostByIdRequest { + postId: string; + xSolvedacLanguage?: Language; +} + +/** + * + */ +export class PostApi extends runtime.BaseAPI { + + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostByIdRaw(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['postId'] == null) { + throw new runtime.RequiredError( + 'postId', + 'Required parameter "postId" was null or undefined when calling getPostById().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['postId'] != null) { + queryParameters['postId'] = requestParameters['postId']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (requestParameters['xSolvedacLanguage'] != null) { + headerParameters['x-solvedac-language'] = String(requestParameters['xSolvedacLanguage']); + } + + const response = await this.request({ + path: `/post/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostById(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getPostByIdRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/cjs/apis/RankingApi.cts b/src/cjs/apis/RankingApi.cts index 63831e9..87dd429 100644 --- a/src/cjs/apis/RankingApi.cts +++ b/src/cjs/apis/RankingApi.cts @@ -16,6 +16,7 @@ import * as runtime from '../runtime.cjs'; import type { GetOrganizationRankingByACRating200Response, + GetRankingByArenaRatingInOrganization200Response, GetRankingByClass200Response, Language, OrganizationType, @@ -26,6 +27,16 @@ export interface GetOrganizationRankingByACRatingRequest { page?: number; } +export interface GetRankingByACRatingInOrganizationRequest { + organizationId: number; + page?: number; +} + +export interface GetRankingByArenaRatingInOrganizationRequest { + organizationId: number; + page?: number; +} + export interface GetRankingByClassRequest { xSolvedacLanguage?: Language; page?: number; @@ -97,6 +108,92 @@ export class RankingApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganizationRaw(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getRankingByACRatingInOrganization().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/ranking/in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganization(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganizationRaw(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getRankingByArenaRatingInOrganization().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/ranking/arena_in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganization(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/src/cjs/apis/SearchApi.cts b/src/cjs/apis/SearchApi.cts index 7c95bc0..49b2ca9 100644 --- a/src/cjs/apis/SearchApi.cts +++ b/src/cjs/apis/SearchApi.cts @@ -16,12 +16,12 @@ import * as runtime from '../runtime.cjs'; import type { GetProblemsByIdList200Response, + GetRankingByArenaRatingInOrganization200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response, - SearchUser200Response, } from '../models/index.cjs'; export interface GetSearchAutoCompletionsRequest { @@ -217,7 +217,7 @@ export class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - async searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['query'] == null) { throw new runtime.RequiredError( 'query', @@ -255,7 +255,7 @@ export class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - async searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.searchUserRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/src/cjs/apis/TagApi.cts b/src/cjs/apis/TagApi.cts new file mode 100644 index 0000000..273ea1f --- /dev/null +++ b/src/cjs/apis/TagApi.cts @@ -0,0 +1,106 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.cjs'; +import type { + ProblemTag, + SearchProblemTag200Response, +} from '../models/index.cjs'; + +export interface GetTagByKeyRequest { + key: string; +} + +export interface GetTagListRequest { + page?: number; +} + +/** + * + */ +export class TagApi extends runtime.BaseAPI { + + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKeyRaw(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['key'] == null) { + throw new runtime.RequiredError( + 'key', + 'Required parameter "key" was null or undefined when calling getTagByKey().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['key'] != null) { + queryParameters['key'] = requestParameters['key']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/tag/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKey(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTagByKeyRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagListRaw(requestParameters: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/tag/list`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagList(requestParameters: GetTagListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTagListRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/cjs/apis/UserApi.cts b/src/cjs/apis/UserApi.cts index 41380ed..c3f9814 100644 --- a/src/cjs/apis/UserApi.cts +++ b/src/cjs/apis/UserApi.cts @@ -16,17 +16,33 @@ import * as runtime from '../runtime.cjs'; import type { GetProblemsByIdList200Response, + GetUserClassStatsClassStat, + GetUserContributionStatsContributionStat, GetUserProblemStatsProblemStat, + GetUserProblemTagStats200Response, Language, Organization, SocialUser, + UserAdditionalInfo, } from '../models/index.cjs'; +export interface GetUserAdditionalInfoRequest { + handle: string; +} + export interface GetUserByHandleRequest { handle: string; xSolvedacLanguage?: Language; } +export interface GetUserClassStatsRequest { + handle: string; +} + +export interface GetUserContributionStatsRequest { + handle: string; +} + export interface GetUserOrganizationsRequest { handle: string; } @@ -35,6 +51,10 @@ export interface GetUserProblemStatsRequest { handle: string; } +export interface GetUserProblemTagStatsRequest { + handle: string; +} + export interface GetUserTop100Request { handle: string; xSolvedacLanguage?: Language; @@ -45,6 +65,45 @@ export interface GetUserTop100Request { */ export class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfoRaw(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserAdditionalInfo().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/additional_info`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfo(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getUserAdditionalInfoRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -88,6 +147,84 @@ export class UserApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStatsRaw(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserClassStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/class_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStats(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.getUserClassStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStatsRaw(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserContributionStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/contribution_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStats(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.getUserContributionStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -166,6 +303,45 @@ export class UserApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStatsRaw(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserProblemTagStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/problem_tag_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStats(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getUserProblemTagStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/src/cjs/apis/index.cts b/src/cjs/apis/index.cts index 3d58a6c..238e1f3 100644 --- a/src/cjs/apis/index.cts +++ b/src/cjs/apis/index.cts @@ -4,8 +4,11 @@ export * from './AccountApi.cjs'; export * from './BackgroundApi.cjs'; export * from './BadgeApi.cjs'; export * from './CoinsApi.cjs'; +export * from './OrganizationApi.cjs'; export * from './OtherApi.cjs'; +export * from './PostApi.cjs'; export * from './ProblemApi.cjs'; export * from './RankingApi.cjs'; export * from './SearchApi.cjs'; +export * from './TagApi.cjs'; export * from './UserApi.cjs'; diff --git a/src/cjs/models/index.cts b/src/cjs/models/index.cts index 2e084e4..6712a3c 100644 --- a/src/cjs/models/index.cts +++ b/src/cjs/models/index.cts @@ -558,6 +558,25 @@ export interface GetProblemsCountGroupByLevelLevelEntry { */ count: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetRankingByArenaRatingInOrganization200Response + */ +export interface GetRankingByArenaRatingInOrganization200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + items: Array; +} /** * 페이지네이션 가능한 쿼리의 응답 결과입니다. * @export @@ -950,6 +969,99 @@ export const GetSearchAutoCompletionsUserEntryClassDecorationEnum = { } as const; export type GetSearchAutoCompletionsUserEntryClassDecorationEnum = typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum[keyof typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum]; +/** + * + * @export + * @interface GetUserClassStatsClassStat + */ +export interface GetUserClassStatsClassStat { + /** + * 클래스 번호입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + _class: GetUserClassStatsClassStatClassEnum; + /** + * solved.ac에 등록된 해당 클래스의 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + total: number; + /** + * 사용자가 푼 클래스 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + totalSolved: number; + /** + * solved.ac에 등록된 해당 클래스의 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentials: number; + /** + * 사용자가 푼 클래스 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentialSolved: number; + /** + * 사용자가 획득한 클래스 치장입니다. + * @type {string} + * @memberof GetUserClassStatsClassStat + */ + decoration: string; +} + + +/** + * @export + */ +export const GetUserClassStatsClassStatClassEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4, + NUMBER_5: 5, + NUMBER_6: 6, + NUMBER_7: 7, + NUMBER_8: 8, + NUMBER_9: 9, + NUMBER_10: 10 +} as const; +export type GetUserClassStatsClassStatClassEnum = typeof GetUserClassStatsClassStatClassEnum[keyof typeof GetUserClassStatsClassStatClassEnum]; + +/** + * + * @export + * @interface GetUserContributionStatsContributionStat + */ +export interface GetUserContributionStatsContributionStat { + /** + * solved.ac에 등록된 해당 수준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solved: number; + /** + * 사용자가 푼 표준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solvedStandards: number; + /** + * 사용자가 기여한 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + contributed: number; +} /** * * @export @@ -987,6 +1099,62 @@ export interface GetUserProblemStatsProblemStat { */ tried: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetUserProblemTagStats200Response + */ +export interface GetUserProblemTagStats200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetUserProblemTagStats200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetUserProblemTagStats200Response + */ + items: Array; +} +/** + * + * @export + * @interface GetUserProblemTagStatsProblemTagStat + */ +export interface GetUserProblemTagStatsProblemTagStat { + /** + * + * @type {ProblemTag} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tag: ProblemTag; + /** + * solved.ac에 등록된 해당 태그 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + solved: number; + /** + * 사용자가 부분 성공한 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + partial: number; + /** + * 사용자가 시도해 본 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tried: number; +} /** * 사용자가 사용할 수 있는 아이템입니다. * @export @@ -1114,6 +1282,43 @@ export const OrganizationType = { } as const; export type OrganizationType = typeof OrganizationType[keyof typeof OrganizationType]; +/** + * solved.ac의 게시글입니다. + * @export + * @interface Post + */ +export interface Post { + /** + * 게시글의 아이디입니다. + * @type {string} + * @memberof Post + */ + postId: string; + /** + * 게시글의 제목입니다. + * @type {string} + * @memberof Post + */ + title: string; + /** + * 게시글의 내용입니다. + * @type {string} + * @memberof Post + */ + content: string; + /** + * 게시글이 작성된 언어입니다. + * @type {string} + * @memberof Post + */ + language: string; + /** + * 게시글 내용의 타입입니다. + * @type {string} + * @memberof Post + */ + type: string; +} /** * 문제 정보입니다. * @export @@ -1704,25 +1909,6 @@ export interface SearchProblemTag200Response { */ items: Array; } -/** - * 페이지네이션 가능한 쿼리의 응답 결과입니다. - * @export - * @interface SearchUser200Response - */ -export interface SearchUser200Response { - /** - * 전체 원소 수입니다. - * @type {number} - * @memberof SearchUser200Response - */ - count: number; - /** - * 현재 페이지의 원소 목록입니다. - * @type {Array} - * @memberof SearchUser200Response - */ - items: Array; -} /** * solved.ac 사이트의 통계 정보입니다. * @export @@ -2333,6 +2519,65 @@ export const UserClassDecorationEnum = { } as const; export type UserClassDecorationEnum = typeof UserClassDecorationEnum[keyof typeof UserClassDecorationEnum]; +/** + * solved.ac 사용자 부가 정보입니다. + * @export + * @interface UserAdditionalInfo + */ +export interface UserAdditionalInfo { + /** + * 사용자의 국가/지역 코드입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + countryCode: string; + /** + * 사용자의 성별입니다. + * - 0: 선택 안 함 + * - 1: 남성 + * - 2: 여성 + * - 9: 기타 + * @type {number} + * @memberof UserAdditionalInfo + */ + gender: number; + /** + * 사용자를 영어로 표기할 때 사용하는 대명사입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + pronouns: string; + /** + * 사용자의 생년입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthYear: number; + /** + * 사용자의 생월입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthMonth: number; + /** + * 사용자의 생일입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthDay: number; + /** + * 사용자의 영어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + name: string; + /** + * 사용자의 모국어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + nameNative: string; +} /** * 사용자 동의 여부입니다. * @export diff --git a/src/esm/.openapi-generator/FILES b/src/esm/.openapi-generator/FILES index 430bc56..5b63d42 100644 --- a/src/esm/.openapi-generator/FILES +++ b/src/esm/.openapi-generator/FILES @@ -3,10 +3,13 @@ apis/AccountApi.ts apis/BackgroundApi.ts apis/BadgeApi.ts apis/CoinsApi.ts +apis/OrganizationApi.ts apis/OtherApi.ts +apis/PostApi.ts apis/ProblemApi.ts apis/RankingApi.ts apis/SearchApi.ts +apis/TagApi.ts apis/UserApi.ts apis/index.ts index.ts diff --git a/src/esm/apis/OrganizationApi.ts b/src/esm/apis/OrganizationApi.ts new file mode 100644 index 0000000..23abdcf --- /dev/null +++ b/src/esm/apis/OrganizationApi.ts @@ -0,0 +1,69 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.js'; +import type { + Organization, +} from '../models/index.js'; + +export interface GetOrganizationByIdRequest { + organizationId: string; +} + +/** + * + */ +export class OrganizationApi extends runtime.BaseAPI { + + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationByIdRaw(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getOrganizationById().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/organization/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 ID의 단체 정보를 가져옵니다. + * 단체 ID로 단체 정보 가져오기 + */ + async getOrganizationById(requestParameters: GetOrganizationByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getOrganizationByIdRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/esm/apis/PostApi.ts b/src/esm/apis/PostApi.ts new file mode 100644 index 0000000..5d546f0 --- /dev/null +++ b/src/esm/apis/PostApi.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.js'; +import type { + Language, + Post, +} from '../models/index.js'; + +export interface GetPostByIdRequest { + postId: string; + xSolvedacLanguage?: Language; +} + +/** + * + */ +export class PostApi extends runtime.BaseAPI { + + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostByIdRaw(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['postId'] == null) { + throw new runtime.RequiredError( + 'postId', + 'Required parameter "postId" was null or undefined when calling getPostById().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['postId'] != null) { + queryParameters['postId'] = requestParameters['postId']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (requestParameters['xSolvedacLanguage'] != null) { + headerParameters['x-solvedac-language'] = String(requestParameters['xSolvedacLanguage']); + } + + const response = await this.request({ + path: `/post/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 제목의 게시글을 가져옵니다. + * 게시글 제목으로 게시글 가져오기 + */ + async getPostById(requestParameters: GetPostByIdRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getPostByIdRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/esm/apis/RankingApi.ts b/src/esm/apis/RankingApi.ts index 227046f..bf265fe 100644 --- a/src/esm/apis/RankingApi.ts +++ b/src/esm/apis/RankingApi.ts @@ -16,6 +16,7 @@ import * as runtime from '../runtime.js'; import type { GetOrganizationRankingByACRating200Response, + GetRankingByArenaRatingInOrganization200Response, GetRankingByClass200Response, Language, OrganizationType, @@ -26,6 +27,16 @@ export interface GetOrganizationRankingByACRatingRequest { page?: number; } +export interface GetRankingByACRatingInOrganizationRequest { + organizationId: number; + page?: number; +} + +export interface GetRankingByArenaRatingInOrganizationRequest { + organizationId: number; + page?: number; +} + export interface GetRankingByClassRequest { xSolvedacLanguage?: Language; page?: number; @@ -97,6 +108,92 @@ export class RankingApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganizationRaw(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getRankingByACRatingInOrganization().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/ranking/in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 단체에 속한 사용자 중에서 문제풀이 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 문제풀이 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByACRatingInOrganization(requestParameters: GetRankingByACRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getRankingByACRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganizationRaw(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['organizationId'] == null) { + throw new runtime.RequiredError( + 'organizationId', + 'Required parameter "organizationId" was null or undefined when calling getRankingByArenaRatingInOrganization().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['organizationId'] != null) { + queryParameters['organizationId'] = requestParameters['organizationId']; + } + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/ranking/arena_in_organization`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 단체에 속한 사용자 중에서 아레나 레이팅이 높은 사용자가 먼저 오도록 정렬한 목록을 가져옵니다. + * 아레나 레이팅 순 단체 내 랭킹 가져오기 + */ + async getRankingByArenaRatingInOrganization(requestParameters: GetRankingByArenaRatingInOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getRankingByArenaRatingInOrganizationRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * CLASS가 높은 사용자가 먼저 오도록 정렬한 사용자 목록을 가져옵니다. * CLASS 순 사용자 랭킹 가져오기 diff --git a/src/esm/apis/SearchApi.ts b/src/esm/apis/SearchApi.ts index b39393a..ae983f4 100644 --- a/src/esm/apis/SearchApi.ts +++ b/src/esm/apis/SearchApi.ts @@ -16,12 +16,12 @@ import * as runtime from '../runtime.js'; import type { GetProblemsByIdList200Response, + GetRankingByArenaRatingInOrganization200Response, GetSearchAutoCompletionsSuggestion, Language, SearchProblemQueryDirection, SearchProblemQuerySort, SearchProblemTag200Response, - SearchUser200Response, } from '../models/index.js'; export interface GetSearchAutoCompletionsRequest { @@ -217,7 +217,7 @@ export class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - async searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async searchUserRaw(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['query'] == null) { throw new runtime.RequiredError( 'query', @@ -255,7 +255,7 @@ export class SearchApi extends runtime.BaseAPI { * 주어진 쿼리에 따라 사용자를 검색합니다. * 사용자 검색하기 */ - async searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async searchUser(requestParameters: SearchUserRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.searchUserRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/src/esm/apis/TagApi.ts b/src/esm/apis/TagApi.ts new file mode 100644 index 0000000..f446a39 --- /dev/null +++ b/src/esm/apis/TagApi.ts @@ -0,0 +1,106 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * @solvedac/unofficial-documentation + * 이 프로젝트는 [solved.ac](https://solved.ac/) API를 문서화하는 커뮤니티 프로젝트입니다. 이 저장소는 원작자의 요청에 따라 언제든 지워질 수 있으며, 현재 API와 일치하지 않을 수도 있는 점 양해 부탁드립니다. solved.ac 서비스는 shiftpsh가 기획·개발·디자인·운영하는 프로젝트로, 이 저장소와는 solved.ac의 API를 문서화해둔 것 이외에는 아무런 관련이 없습니다. [GitHub에서 보기](https://github.com/solvedac/unofficial-documentation) **주의**: (2023/03/08~) CORS 문제로 인해 API는 사이트 내에서 호출할 수 없으므로 별도 도구를 이용해주십시오. ([#51](https://github.com/solvedac/unofficial-documentation/issues/51))
**참고**: 본 저장소를 내려받고, `pnpm dev`를 실행하시면 로컬 개발 서버를 프록시로 삼아 CORS를 무시할 수 있습니다. ![@solvedac/unofficial-documentation banner](./assets/solvedac-ud-compact.png) + * + * The version of the OpenAPI document: 3.2024.03+b1 + * Contact: me@ranolp.dev + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime.js'; +import type { + ProblemTag, + SearchProblemTag200Response, +} from '../models/index.js'; + +export interface GetTagByKeyRequest { + key: string; +} + +export interface GetTagListRequest { + page?: number; +} + +/** + * + */ +export class TagApi extends runtime.BaseAPI { + + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKeyRaw(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['key'] == null) { + throw new runtime.RequiredError( + 'key', + 'Required parameter "key" was null or undefined when calling getTagByKey().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['key'] != null) { + queryParameters['key'] = requestParameters['key']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/tag/show`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 태그 ID로 태그 정보를 가져옵니다. + * 태그 ID로 태그 정보 가져오기 + */ + async getTagByKey(requestParameters: GetTagByKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTagByKeyRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagListRaw(requestParameters: GetTagListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['page'] != null) { + queryParameters['page'] = requestParameters['page']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/tag/list`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 태그 목록을 가져옵니다. + * 태그 목록 가져오기 + */ + async getTagList(requestParameters: GetTagListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTagListRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/src/esm/apis/UserApi.ts b/src/esm/apis/UserApi.ts index c57cf03..5fc1edb 100644 --- a/src/esm/apis/UserApi.ts +++ b/src/esm/apis/UserApi.ts @@ -16,17 +16,33 @@ import * as runtime from '../runtime.js'; import type { GetProblemsByIdList200Response, + GetUserClassStatsClassStat, + GetUserContributionStatsContributionStat, GetUserProblemStatsProblemStat, + GetUserProblemTagStats200Response, Language, Organization, SocialUser, + UserAdditionalInfo, } from '../models/index.js'; +export interface GetUserAdditionalInfoRequest { + handle: string; +} + export interface GetUserByHandleRequest { handle: string; xSolvedacLanguage?: Language; } +export interface GetUserClassStatsRequest { + handle: string; +} + +export interface GetUserContributionStatsRequest { + handle: string; +} + export interface GetUserOrganizationsRequest { handle: string; } @@ -35,6 +51,10 @@ export interface GetUserProblemStatsRequest { handle: string; } +export interface GetUserProblemTagStatsRequest { + handle: string; +} + export interface GetUserTop100Request { handle: string; xSolvedacLanguage?: Language; @@ -45,6 +65,45 @@ export interface GetUserTop100Request { */ export class UserApi extends runtime.BaseAPI { + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfoRaw(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserAdditionalInfo().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/additional_info`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들을 가진 사용자의 부가 정보를 가져옵니다. + * 사용자 핸들로 부가 정보 가져오기 + */ + async getUserAdditionalInfo(requestParameters: GetUserAdditionalInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getUserAdditionalInfoRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 정보 가져오기 @@ -88,6 +147,84 @@ export class UserApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStatsRaw(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserClassStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/class_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 푼 문제 수를 클래스별로 나누어 가져옵니다. + * 클래스별로 사용자가 푼 문제 수 가져오기 + */ + async getUserClassStats(requestParameters: GetUserClassStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.getUserClassStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStatsRaw(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserContributionStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/contribution_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 기여한 문제 수를 문제 수준별로 나누어 가져옵니다. + * 문제 수준별로 사용자가 기여한 문제 수 가져오기 + */ + async getUserContributionStats(requestParameters: GetUserContributionStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.getUserContributionStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 해당 핸들의 사용자 정보를 가져옵니다. 만약 요청자가 로그인 중이라면 라이벌 여부도 가져옵니다. 로그인 중이 아니라면 라이벌 등 로그인해야 알 수 있는 정보는 기본값 처리됩니다. * 사용자 핸들로 단체 가져오기 @@ -166,6 +303,45 @@ export class UserApi extends runtime.BaseAPI { return await response.value(); } + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStatsRaw(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['handle'] == null) { + throw new runtime.RequiredError( + 'handle', + 'Required parameter "handle" was null or undefined when calling getUserProblemTagStats().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['handle'] != null) { + queryParameters['handle'] = requestParameters['handle']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/user/problem_tag_stats`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * 해당 핸들의 사용자가 푼 문제 수를 태그별로 나누어 가져옵니다. + * 태그별로 사용자가 푼 문제 수 가져오기 + */ + async getUserProblemTagStats(requestParameters: GetUserProblemTagStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getUserProblemTagStatsRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 사용자가 푼 문제 중 문제 수준이 높은 상위 100 문제를 가져옵니다 * 상위 100 문제 가져오기 diff --git a/src/esm/apis/index.ts b/src/esm/apis/index.ts index 1854d90..50542e5 100644 --- a/src/esm/apis/index.ts +++ b/src/esm/apis/index.ts @@ -4,8 +4,11 @@ export * from './AccountApi.js'; export * from './BackgroundApi.js'; export * from './BadgeApi.js'; export * from './CoinsApi.js'; +export * from './OrganizationApi.js'; export * from './OtherApi.js'; +export * from './PostApi.js'; export * from './ProblemApi.js'; export * from './RankingApi.js'; export * from './SearchApi.js'; +export * from './TagApi.js'; export * from './UserApi.js'; diff --git a/src/esm/apis/mod.ts b/src/esm/apis/mod.ts index 1854d90..50542e5 100644 --- a/src/esm/apis/mod.ts +++ b/src/esm/apis/mod.ts @@ -4,8 +4,11 @@ export * from './AccountApi.js'; export * from './BackgroundApi.js'; export * from './BadgeApi.js'; export * from './CoinsApi.js'; +export * from './OrganizationApi.js'; export * from './OtherApi.js'; +export * from './PostApi.js'; export * from './ProblemApi.js'; export * from './RankingApi.js'; export * from './SearchApi.js'; +export * from './TagApi.js'; export * from './UserApi.js'; diff --git a/src/esm/models/index.ts b/src/esm/models/index.ts index 2e084e4..6712a3c 100644 --- a/src/esm/models/index.ts +++ b/src/esm/models/index.ts @@ -558,6 +558,25 @@ export interface GetProblemsCountGroupByLevelLevelEntry { */ count: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetRankingByArenaRatingInOrganization200Response + */ +export interface GetRankingByArenaRatingInOrganization200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + items: Array; +} /** * 페이지네이션 가능한 쿼리의 응답 결과입니다. * @export @@ -950,6 +969,99 @@ export const GetSearchAutoCompletionsUserEntryClassDecorationEnum = { } as const; export type GetSearchAutoCompletionsUserEntryClassDecorationEnum = typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum[keyof typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum]; +/** + * + * @export + * @interface GetUserClassStatsClassStat + */ +export interface GetUserClassStatsClassStat { + /** + * 클래스 번호입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + _class: GetUserClassStatsClassStatClassEnum; + /** + * solved.ac에 등록된 해당 클래스의 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + total: number; + /** + * 사용자가 푼 클래스 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + totalSolved: number; + /** + * solved.ac에 등록된 해당 클래스의 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentials: number; + /** + * 사용자가 푼 클래스 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentialSolved: number; + /** + * 사용자가 획득한 클래스 치장입니다. + * @type {string} + * @memberof GetUserClassStatsClassStat + */ + decoration: string; +} + + +/** + * @export + */ +export const GetUserClassStatsClassStatClassEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4, + NUMBER_5: 5, + NUMBER_6: 6, + NUMBER_7: 7, + NUMBER_8: 8, + NUMBER_9: 9, + NUMBER_10: 10 +} as const; +export type GetUserClassStatsClassStatClassEnum = typeof GetUserClassStatsClassStatClassEnum[keyof typeof GetUserClassStatsClassStatClassEnum]; + +/** + * + * @export + * @interface GetUserContributionStatsContributionStat + */ +export interface GetUserContributionStatsContributionStat { + /** + * solved.ac에 등록된 해당 수준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solved: number; + /** + * 사용자가 푼 표준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solvedStandards: number; + /** + * 사용자가 기여한 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + contributed: number; +} /** * * @export @@ -987,6 +1099,62 @@ export interface GetUserProblemStatsProblemStat { */ tried: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetUserProblemTagStats200Response + */ +export interface GetUserProblemTagStats200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetUserProblemTagStats200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetUserProblemTagStats200Response + */ + items: Array; +} +/** + * + * @export + * @interface GetUserProblemTagStatsProblemTagStat + */ +export interface GetUserProblemTagStatsProblemTagStat { + /** + * + * @type {ProblemTag} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tag: ProblemTag; + /** + * solved.ac에 등록된 해당 태그 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + solved: number; + /** + * 사용자가 부분 성공한 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + partial: number; + /** + * 사용자가 시도해 본 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tried: number; +} /** * 사용자가 사용할 수 있는 아이템입니다. * @export @@ -1114,6 +1282,43 @@ export const OrganizationType = { } as const; export type OrganizationType = typeof OrganizationType[keyof typeof OrganizationType]; +/** + * solved.ac의 게시글입니다. + * @export + * @interface Post + */ +export interface Post { + /** + * 게시글의 아이디입니다. + * @type {string} + * @memberof Post + */ + postId: string; + /** + * 게시글의 제목입니다. + * @type {string} + * @memberof Post + */ + title: string; + /** + * 게시글의 내용입니다. + * @type {string} + * @memberof Post + */ + content: string; + /** + * 게시글이 작성된 언어입니다. + * @type {string} + * @memberof Post + */ + language: string; + /** + * 게시글 내용의 타입입니다. + * @type {string} + * @memberof Post + */ + type: string; +} /** * 문제 정보입니다. * @export @@ -1704,25 +1909,6 @@ export interface SearchProblemTag200Response { */ items: Array; } -/** - * 페이지네이션 가능한 쿼리의 응답 결과입니다. - * @export - * @interface SearchUser200Response - */ -export interface SearchUser200Response { - /** - * 전체 원소 수입니다. - * @type {number} - * @memberof SearchUser200Response - */ - count: number; - /** - * 현재 페이지의 원소 목록입니다. - * @type {Array} - * @memberof SearchUser200Response - */ - items: Array; -} /** * solved.ac 사이트의 통계 정보입니다. * @export @@ -2333,6 +2519,65 @@ export const UserClassDecorationEnum = { } as const; export type UserClassDecorationEnum = typeof UserClassDecorationEnum[keyof typeof UserClassDecorationEnum]; +/** + * solved.ac 사용자 부가 정보입니다. + * @export + * @interface UserAdditionalInfo + */ +export interface UserAdditionalInfo { + /** + * 사용자의 국가/지역 코드입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + countryCode: string; + /** + * 사용자의 성별입니다. + * - 0: 선택 안 함 + * - 1: 남성 + * - 2: 여성 + * - 9: 기타 + * @type {number} + * @memberof UserAdditionalInfo + */ + gender: number; + /** + * 사용자를 영어로 표기할 때 사용하는 대명사입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + pronouns: string; + /** + * 사용자의 생년입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthYear: number; + /** + * 사용자의 생월입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthMonth: number; + /** + * 사용자의 생일입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthDay: number; + /** + * 사용자의 영어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + name: string; + /** + * 사용자의 모국어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + nameNative: string; +} /** * 사용자 동의 여부입니다. * @export diff --git a/src/esm/models/mod.ts b/src/esm/models/mod.ts index 2e084e4..6712a3c 100644 --- a/src/esm/models/mod.ts +++ b/src/esm/models/mod.ts @@ -558,6 +558,25 @@ export interface GetProblemsCountGroupByLevelLevelEntry { */ count: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetRankingByArenaRatingInOrganization200Response + */ +export interface GetRankingByArenaRatingInOrganization200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetRankingByArenaRatingInOrganization200Response + */ + items: Array; +} /** * 페이지네이션 가능한 쿼리의 응답 결과입니다. * @export @@ -950,6 +969,99 @@ export const GetSearchAutoCompletionsUserEntryClassDecorationEnum = { } as const; export type GetSearchAutoCompletionsUserEntryClassDecorationEnum = typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum[keyof typeof GetSearchAutoCompletionsUserEntryClassDecorationEnum]; +/** + * + * @export + * @interface GetUserClassStatsClassStat + */ +export interface GetUserClassStatsClassStat { + /** + * 클래스 번호입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + _class: GetUserClassStatsClassStatClassEnum; + /** + * solved.ac에 등록된 해당 클래스의 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + total: number; + /** + * 사용자가 푼 클래스 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + totalSolved: number; + /** + * solved.ac에 등록된 해당 클래스의 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentials: number; + /** + * 사용자가 푼 클래스 에센셜 문제 수입니다. + * @type {number} + * @memberof GetUserClassStatsClassStat + */ + essentialSolved: number; + /** + * 사용자가 획득한 클래스 치장입니다. + * @type {string} + * @memberof GetUserClassStatsClassStat + */ + decoration: string; +} + + +/** + * @export + */ +export const GetUserClassStatsClassStatClassEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4, + NUMBER_5: 5, + NUMBER_6: 6, + NUMBER_7: 7, + NUMBER_8: 8, + NUMBER_9: 9, + NUMBER_10: 10 +} as const; +export type GetUserClassStatsClassStatClassEnum = typeof GetUserClassStatsClassStatClassEnum[keyof typeof GetUserClassStatsClassStatClassEnum]; + +/** + * + * @export + * @interface GetUserContributionStatsContributionStat + */ +export interface GetUserContributionStatsContributionStat { + /** + * solved.ac에 등록된 해당 수준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solved: number; + /** + * 사용자가 푼 표준 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + solvedStandards: number; + /** + * 사용자가 기여한 문제 수입니다. + * @type {number} + * @memberof GetUserContributionStatsContributionStat + */ + contributed: number; +} /** * * @export @@ -987,6 +1099,62 @@ export interface GetUserProblemStatsProblemStat { */ tried: number; } +/** + * 페이지네이션 가능한 쿼리의 응답 결과입니다. + * @export + * @interface GetUserProblemTagStats200Response + */ +export interface GetUserProblemTagStats200Response { + /** + * 전체 원소 수입니다. + * @type {number} + * @memberof GetUserProblemTagStats200Response + */ + count: number; + /** + * 현재 페이지의 원소 목록입니다. + * @type {Array} + * @memberof GetUserProblemTagStats200Response + */ + items: Array; +} +/** + * + * @export + * @interface GetUserProblemTagStatsProblemTagStat + */ +export interface GetUserProblemTagStatsProblemTagStat { + /** + * + * @type {ProblemTag} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tag: ProblemTag; + /** + * solved.ac에 등록된 해당 태그 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + total: number; + /** + * 사용자가 푼 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + solved: number; + /** + * 사용자가 부분 성공한 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + partial: number; + /** + * 사용자가 시도해 본 문제 수입니다. + * @type {number} + * @memberof GetUserProblemTagStatsProblemTagStat + */ + tried: number; +} /** * 사용자가 사용할 수 있는 아이템입니다. * @export @@ -1114,6 +1282,43 @@ export const OrganizationType = { } as const; export type OrganizationType = typeof OrganizationType[keyof typeof OrganizationType]; +/** + * solved.ac의 게시글입니다. + * @export + * @interface Post + */ +export interface Post { + /** + * 게시글의 아이디입니다. + * @type {string} + * @memberof Post + */ + postId: string; + /** + * 게시글의 제목입니다. + * @type {string} + * @memberof Post + */ + title: string; + /** + * 게시글의 내용입니다. + * @type {string} + * @memberof Post + */ + content: string; + /** + * 게시글이 작성된 언어입니다. + * @type {string} + * @memberof Post + */ + language: string; + /** + * 게시글 내용의 타입입니다. + * @type {string} + * @memberof Post + */ + type: string; +} /** * 문제 정보입니다. * @export @@ -1704,25 +1909,6 @@ export interface SearchProblemTag200Response { */ items: Array; } -/** - * 페이지네이션 가능한 쿼리의 응답 결과입니다. - * @export - * @interface SearchUser200Response - */ -export interface SearchUser200Response { - /** - * 전체 원소 수입니다. - * @type {number} - * @memberof SearchUser200Response - */ - count: number; - /** - * 현재 페이지의 원소 목록입니다. - * @type {Array} - * @memberof SearchUser200Response - */ - items: Array; -} /** * solved.ac 사이트의 통계 정보입니다. * @export @@ -2333,6 +2519,65 @@ export const UserClassDecorationEnum = { } as const; export type UserClassDecorationEnum = typeof UserClassDecorationEnum[keyof typeof UserClassDecorationEnum]; +/** + * solved.ac 사용자 부가 정보입니다. + * @export + * @interface UserAdditionalInfo + */ +export interface UserAdditionalInfo { + /** + * 사용자의 국가/지역 코드입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + countryCode: string; + /** + * 사용자의 성별입니다. + * - 0: 선택 안 함 + * - 1: 남성 + * - 2: 여성 + * - 9: 기타 + * @type {number} + * @memberof UserAdditionalInfo + */ + gender: number; + /** + * 사용자를 영어로 표기할 때 사용하는 대명사입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + pronouns: string; + /** + * 사용자의 생년입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthYear: number; + /** + * 사용자의 생월입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthMonth: number; + /** + * 사용자의 생일입니다. + * @type {number} + * @memberof UserAdditionalInfo + */ + birthDay: number; + /** + * 사용자의 영어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + name: string; + /** + * 사용자의 모국어 이름입니다. + * @type {string} + * @memberof UserAdditionalInfo + */ + nameNative: string; +} /** * 사용자 동의 여부입니다. * @export