Skip to content

Commit

Permalink
Merge pull request #1391 from academic-relations/dev
Browse files Browse the repository at this point in the history
2024-01-26 배포
  • Loading branch information
Engineer-JJHaMa authored Jan 26, 2025
2 parents ab2dea9 + 0fcb352 commit 042cd46
Show file tree
Hide file tree
Showing 121 changed files with 3,116 additions and 986 deletions.
4 changes: 2 additions & 2 deletions .vscode/typescriptreact.code-snippets
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@
" useQuery<${1:api}ResponseOk, Error>({",
" queryKey: [${1:api}.url()],",
" queryFn: async (): Promise<${1:api}ResponseOk> => {",
" const { data, status } = await axiosClientWithAuth.get(",
" const { data } = await axiosClientWithAuth.get(",
" ${1:api}.url(),",
" {},",
" );",
"",
" return ${1:api}.responseBodyMap[200].parse(data);",
" return data;",
" },",
"});",
"",
Expand Down
4 changes: 2 additions & 2 deletions packages/api/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import { ActivityCertificateModule } from "./feature/activity-certificate/activi

import { AuthModule } from "./feature/auth/auth.module";
import { JwtAccessGuard } from "./feature/auth/guard/jwt-access.guard";
import { ClubModule } from "./feature/club/club.module";
import ClubModule from "./feature/club/club.module";
import { CommonSpaceModule } from "./feature/common-space/common-space.module";
import DivisionModule from "./feature/division/division.module";
import { FileModule } from "./feature/file/file.module";
import FileModule from "./feature/file/file.module";
import FundingModule from "./feature/funding/funding.module";
import { MeetingModule } from "./feature/meeting/meeting.module";
import { NoticeModule } from "./feature/notice/notice.module";
Expand Down
8 changes: 6 additions & 2 deletions packages/api/src/drizzle/schema/activity.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,13 @@ export const Activity = mysqlTable(
activityStatusEnumId: int("activity_status_enum_id")
.notNull()
.references(() => ActivityStatusEnum.id),
chargedExecutiveId: int("charged_executive_id"),
chargedExecutiveId: int("charged_executive_id").references(
() => Executive.id,
),
professorApprovedAt: timestamp("professor_approved_at"),
createdAt: timestamp("created_at").defaultNow(),
editedAt: timestamp("edited_at").defaultNow().notNull(),
commentedAt: timestamp("commented_at"),
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().onUpdateNow().notNull(),
deletedAt: timestamp("deleted_at"),
},
Expand Down
17 changes: 7 additions & 10 deletions packages/api/src/drizzle/schema/funding.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,18 @@ import {
varchar,
} from "drizzle-orm/mysql-core";

import { Activity } from "./activity.schema";
import { Club, SemesterD } from "./club.schema";
import { Activity, ActivityD } from "./activity.schema";
import { Club } from "./club.schema";
import { ExecutiveT, StudentT } from "./user.schema";

export const Funding = mysqlTable(
"funding",
{
id: int("id").autoincrement().primaryKey().notNull(),
clubId: int("club_id").notNull(),
semesterId: int("semester_id").notNull(),
activityDId: int("activity_d_id")
.notNull()
.references(() => ActivityD.id),
fundingStatusEnum: int("funding_status_enum").notNull(),
purposeActivityId: int("purpose_activity_id"),
name: varchar("name", { length: 255 }).notNull(),
Expand Down Expand Up @@ -46,7 +48,6 @@ export const Funding = mysqlTable(
origin: varchar("origin", { length: 255 }),
destination: varchar("destination", { length: 255 }),
purposeOfTransportation: text("purpose_of_transportation"),
placeValidity: text("place_validity"),
isNonCorporateTransaction: boolean(
"is_non_corporate_transaction",
).notNull(),
Expand All @@ -72,7 +73,8 @@ export const Funding = mysqlTable(
isEtcExpense: boolean("is_etc_expense").notNull(),
etcExpenseExplanation: text("etc_expense_explanation"),
chargedExecutiveId: int("charged_executive_id"),
isCommitee: boolean("is_commitee").default(false).notNull(),
editedAt: timestamp("edited_at").defaultNow().notNull(),
commentedAt: timestamp("commented_at"),
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().onUpdateNow().notNull(),
deletedAt: timestamp("deleted_at"),
Expand All @@ -83,11 +85,6 @@ export const Funding = mysqlTable(
columns: [table.clubId],
foreignColumns: [Club.id],
}),
semesterForeignKey: foreignKey({
name: "funding_semester_id_fk",
columns: [table.semesterId],
foreignColumns: [SemesterD.id],
}),
purposeForeignKey: foreignKey({
name: "funding_purpose_id_fk",
columns: [table.purposeActivityId],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Module } from "@nestjs/common";

import { ClubModule } from "@sparcs-clubs/api/feature/club/club.module";
import ClubModule from "@sparcs-clubs/api/feature/club/club.module";

import UserModule from "@sparcs-clubs/api/feature/user/user.module";

Expand Down
4 changes: 2 additions & 2 deletions packages/api/src/feature/activity/activity.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { Module } from "@nestjs/common";

import { DrizzleModule } from "src/drizzle/drizzle.module";

import { ClubModule } from "../club/club.module";
import ClubModule from "../club/club.module";
import ClubTRepository from "../club/repository/club.club-t.repository";
import DivisionModule from "../division/division.module";
import { FileModule } from "../file/file.module";
import FileModule from "../file/file.module";
import { ClubRegistrationModule } from "../registration/club-registration/club-registration.module";
import UserModule from "../user/user.module";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ import apiAct020, {
ApiAct020RequestBody,
ApiAct020ResponseCreated,
} from "@sparcs-clubs/interface/api/activity/endpoint/apiAct020";
import apiAct021, {
type ApiAct021RequestQuery,
ApiAct021RequestUrl,
type ApiAct021ResponseOk,
} from "@sparcs-clubs/interface/api/activity/endpoint/apiAct021";
import apiAct022, {
ApiAct022RequestParam,
ApiAct022RequestUrl,
type ApiAct022ResponseOk,
} from "@sparcs-clubs/interface/api/activity/endpoint/apiAct022";
import apiAct023 from "@sparcs-clubs/interface/api/activity/endpoint/apiAct023";
import apiAct024 from "@sparcs-clubs/interface/api/activity/endpoint/apiAct024";
import apiAct025 from "@sparcs-clubs/interface/api/activity/endpoint/apiAct025";
Expand All @@ -51,6 +61,11 @@ import apiAct027, {
ApiAct027RequestUrl,
type ApiAct027ResponseOk,
} from "@sparcs-clubs/interface/api/activity/endpoint/apiAct027";
import apiAct028, {
ApiAct028RequestParam,
ApiAct028RequestUrl,
type ApiAct028ResponseOk,
} from "@sparcs-clubs/interface/api/activity/endpoint/apiAct028";

import { ZodPipe } from "@sparcs-clubs/api/common/pipe/zod-pipe";

Expand Down Expand Up @@ -470,4 +485,38 @@ export default class ActivityController {
);
return result;
}

@Student()
@Get(ApiAct021RequestUrl)
@UsePipes(new ZodPipe(apiAct021))
async getStudentActivitiesAvailable(
@GetStudent() user: GetStudent,
@Query() query: ApiAct021RequestQuery,
): Promise<ApiAct021ResponseOk> {
return this.activityService.getStudentActivitiesAvailable(
user.studentId,
query.clubId,
);
}

@Student()
@Get(ApiAct022RequestUrl)
@UsePipes(new ZodPipe(apiAct022))
async getStudentActivityParticipants(
@GetStudent() user: GetStudent,
@Param() param: ApiAct022RequestParam,
): Promise<ApiAct022ResponseOk> {
return this.activityService.getStudentActivityParticipants(param.id);
}

@Executive()
@Get(ApiAct028RequestUrl)
@UsePipes(new ZodPipe(apiAct028))
async getExecutiveActivitiesExecutiveBrief(
@Param() param: ApiAct028RequestParam,
): Promise<ApiAct028ResponseOk> {
return this.activityService.getExecutiveActivitiesExecutiveBrief(
param.executiveId,
);
}
}
21 changes: 21 additions & 0 deletions packages/api/src/feature/activity/model/activity.duration.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { IActivityDuration } from "@sparcs-clubs/interface/api/activity/type/activity.duration.type";

export class MActivityDuration implements IActivityDuration {
id: number;

year: number;

name: string;

startTerm: Date;

endTerm: Date;

createdAt: Date;

deletedAt: Date | null;

constructor(data: IActivityDuration) {
Object.assign(this, data);
}
}
73 changes: 73 additions & 0 deletions packages/api/src/feature/activity/model/activity.summary.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { IActivitySummary } from "@sparcs-clubs/interface/api/activity/type/activity.type";
import {
ActivityStatusEnum,
ActivityTypeEnum,
} from "@sparcs-clubs/interface/common/enum/activity.enum";

export class VActivitySummary implements IActivitySummary {
id: number;

activityStatusEnum: ActivityStatusEnum;

activityTypeEnum: ActivityTypeEnum;

club: {
id: number;
};

name: string;

commentedAt: Date | null;

editedAt: Date;

updatedAt: Date;

chargedExecutive: {
id: number;
};

commentedExecutive: {
id: number;
};

constructor(data: VActivitySummary) {
Object.assign(this, data);
}

static fromDBResult(activity: {
id: number;
activityStatusEnumId: ActivityStatusEnum;
activityTypeEnumId: ActivityTypeEnum;
clubId: number;
name: string;
commentedAt: Date | null;
editedAt: Date;
updatedAt: Date;
chargedExecutiveId?: number;
commentedExecutiveId?: number;
}): VActivitySummary {
return new VActivitySummary({
id: activity.id,
activityStatusEnum: activity.activityStatusEnumId,
activityTypeEnum: activity.activityTypeEnumId,
club: {
id: activity.clubId,
},
name: activity.name,
commentedAt: activity.commentedAt,
editedAt: activity.editedAt,
updatedAt: activity.updatedAt,
chargedExecutive: activity.chargedExecutiveId
? {
id: activity.chargedExecutiveId,
}
: undefined,
commentedExecutive: activity.commentedExecutiveId
? {
id: activity.commentedExecutiveId,
}
: undefined,
});
}
}
Loading

0 comments on commit 042cd46

Please sign in to comment.