Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@themoment-team/datagsm-openapi",
"version": "1.0.0",
"version": "1.1.0",
"description": "Official JavaScript/TypeScript SDK for DataGSM OpenAPI",
"license": "MIT",
"author": "themoment-team",
Expand Down
2 changes: 2 additions & 0 deletions src/domains/clubs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ export class ClubsApi {
clubId: request.clubId,
clubName: request.clubName,
clubType: request.clubType,
clubStatus: request.clubStatus,
foundedYear: request.foundedYear,
page: request.page,
size: request.size,
includeLeaderInParticipants: request.includeLeaderInParticipants,
Expand Down
2 changes: 2 additions & 0 deletions src/domains/students.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export class StudentsApi {
role: request.role,
dormitoryRoom: request.dormitoryRoom,
includeGraduates: request.includeGraduates,
includeWithdrawn: request.includeWithdrawn,
onlyEnrolled: request.onlyEnrolled,
Comment on lines +22 to +23
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sdk와는 관련이 없지만 이것을 보고 알게 된건데 생각해보니 서버에서 요청을 할때 github 관련 정보나 전공 등 최근 추가된 파라미터들론 검색을 할수가 없던데 이런것들을 서버에서 작업해야 할까요?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

예를 들어 어떤 방식을 말씀하시는 건가요??

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

특정 전공인 학생을 검색한다거나, 그런 것들을 말씀하신 건가요?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검색 파라미터로 전공 문자열,github ID를 전달할 수 있도록 하는 것을 말한겁니다!
예를 들어 junjun을 파라미터로 전달하면 3415 전준연이 조회되도록 하는 그런 식으로요

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

특정 전공(예: 프론트엔드)을 검색했을 때 해당 전공의 학생 목록이 반환되는 기능은 충분히 활용 가치가 있을 것 같습니다. 그런데 개인적으로는 GitHub ID로 학생을 검색하는 경우는 그렇게 많지 않을 것 같습니다. 그래도 기능이 있다면 특정 상황에서는 유용하게 활용될 수 있을 것 같네요!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

작업을 진행한다면 오늘 내로 작업이 가능할 것 같긴 한데 우선 진행해보겠습니다.

Copy link
Copy Markdown
Member

@snowykte0426 snowykte0426 Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

특정 전공(예: 프론트엔드)을 검색했을 때 해당 전공의 학생 목록이 반환되는 기능은 충분히 활용 가치가 있을 것 같습니다. 그런데 개인적으로는 GitHub ID로 학생을 검색하는 경우는 그렇게 많지 않을 것 같습니다. 그래도 기능이 있다면 특정 상황에서는 유용하게 활용될 수 있을 것 같네요!

서버 측 작업 진행하였습니다.
코드베이스 확인 결과 전공이 누락된게 아니라 학과가 누락되어 있었어서 이를 수정하였습니다

page: request.page,
size: request.size,
sortBy: request.sortBy,
Expand Down
8 changes: 7 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ export type {
GetStudentsResponse,
} from './types/students';

export type { Club, ClubSortBy, GetClubsRequest, GetClubsResponse } from './types/clubs';
export type {
Club,
ClubSortBy,
ClubStatus,
GetClubsRequest,
GetClubsResponse,
} from './types/clubs';

export type {
Project,
Expand Down
27 changes: 14 additions & 13 deletions src/types/clubs.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
import type { ClubType, ParticipantInfo, SortDirection } from './index';
import type { ApiResponse, ClubType, ParticipantInfo, SortDirection } from './index';

export type ClubSortBy = 'ID' | 'NAME' | 'TYPE';
export type ClubStatus = 'ACTIVE' | 'ABOLISHED';
export type ClubSortBy = 'ID' | 'NAME' | 'TYPE' | 'FOUNDED_YEAR' | 'STATUS';

export interface Club {
id: number;
name: string;
type: ClubType;
leader: ParticipantInfo;
leader?: ParticipantInfo;
participants: ParticipantInfo[];
foundedYear: number;
status: ClubStatus;
abolishedYear?: number;
}

export interface GetClubsRequest {
clubId?: number;
clubName?: string;
clubType?: ClubType;
clubStatus?: ClubStatus;
foundedYear?: number;
page?: number;
size?: number;
includeLeaderInParticipants?: boolean;
sortBy?: ClubSortBy;
sortDirection?: SortDirection;
}

export interface GetClubsResponse {
status: string;
code: number;
message: string;
data: {
totalPages: number;
totalElements: number;
clubs: Club[];
};
}
export type GetClubsResponse = ApiResponse<{
totalPages: number;
totalElements: number;
clubs: Club[];
}>;
8 changes: 3 additions & 5 deletions src/types/health.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
export interface HealthCheckResponse {
status: string;
code: number;
message: string;
}
import type { ApiResponse } from './index';

export type HealthCheckResponse = Omit<ApiResponse<never>, 'data'>;
2 changes: 1 addition & 1 deletion src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export type SortDirection = 'ASC' | 'DESC';
export type Sex = 'MAN' | 'WOMAN';
export type Major = 'SW_DEVELOPMENT' | 'SMART_IOT' | 'AI';
export type ClubType = 'MAJOR_CLUB' | 'JOB_CLUB' | 'AUTONOMOUS_CLUB';
export type ClubType = 'MAJOR_CLUB' | 'AUTONOMOUS_CLUB';

export interface ClubSummary {
id: number;
Expand Down
16 changes: 4 additions & 12 deletions src/types/neis.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type { ApiResponse } from './index';

export type MealType = 'BREAKFAST' | 'LUNCH' | 'DINNER';

export interface Meal {
Expand All @@ -22,12 +24,7 @@ export interface GetMealsRequest {
toDate?: string;
}

export interface GetMealsResponse {
status: string;
code: number;
message: string;
data: Meal[];
}
export type GetMealsResponse = ApiResponse<Meal[]>;

export interface Schedule {
scheduleId: string;
Expand All @@ -51,9 +48,4 @@ export interface GetSchedulesRequest {
toDate?: string;
}

export interface GetSchedulesResponse {
status: string;
code: number;
message: string;
data: Schedule[];
}
export type GetSchedulesResponse = ApiResponse<Schedule[]>;
17 changes: 6 additions & 11 deletions src/types/projects.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ClubSummary, ParticipantInfo, SortDirection } from './index';
import type { ApiResponse, ClubSummary, ParticipantInfo, SortDirection } from './index';

export type ProjectSortBy = 'ID' | 'NAME';

Expand All @@ -20,13 +20,8 @@ export interface GetProjectsRequest {
sortDirection?: SortDirection;
}

export interface GetProjectsResponse {
status: string;
code: number;
message: string;
data: {
totalPages: number;
totalElements: number;
projects: Project[];
};
}
export type GetProjectsResponse = ApiResponse<{
totalPages: number;
totalElements: number;
projects: Project[];
}>;
37 changes: 18 additions & 19 deletions src/types/students.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Sex, Major, ClubSummary, SortDirection } from './index';
import type { ApiResponse, ClubSummary, Major, Sex, SortDirection } from './index';

export type Role =
| 'STUDENT_COUNCIL'
Expand All @@ -24,17 +24,19 @@ export interface Student {
name: string;
sex: Sex;
email: string;
grade: number;
classNum: number;
number: number;
studentNumber: number;
major: Major;
grade?: number;
classNum?: number;
number?: number;
studentNumber?: number;
major?: Major;
specialty?: string;
role: Role;
dormitoryFloor: number;
dormitoryRoom: number;
dormitoryFloor?: number;
dormitoryRoom?: number;
majorClub?: ClubSummary;
jobClub?: ClubSummary;
autonomousClub?: ClubSummary;
githubId?: string;
githubUrl?: string;
}

export interface GetStudentsRequest {
Expand All @@ -48,19 +50,16 @@ export interface GetStudentsRequest {
role?: Role;
dormitoryRoom?: number;
includeGraduates?: boolean;
includeWithdrawn?: boolean;
onlyEnrolled?: boolean;
page?: number;
size?: number;
sortBy?: SortBy;
sortDirection?: SortDirection;
}

export interface GetStudentsResponse {
status: string;
code: number;
message: string;
data: {
totalPages: number;
totalElements: number;
students: Student[];
};
}
export type GetStudentsResponse = ApiResponse<{
totalPages: number;
totalElements: number;
students: Student[];
}>;