Skip to content
This repository has been archived by the owner on Dec 27, 2024. It is now read-only.

Commit

Permalink
fix interface of factory layer
Browse files Browse the repository at this point in the history
  • Loading branch information
taga3s committed Nov 1, 2024
1 parent 5ac0ba4 commit 214cb60
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 17 deletions.
4 changes: 2 additions & 2 deletions src/api/badge/factory.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { type Badge, toBadge } from "./model";
import { badgeRepository } from "./repository";
import { BadgeRepository, badgeRepository } from "./repository";
import type { AchieveBadgeParams, PinBadgeParams, UnpinBadgeParams } from "./types";

export const createFactory = () => {
const repository = badgeRepository;
const repository: BadgeRepository = badgeRepository;

return {
listBadges: async () => {
Expand Down
4 changes: 2 additions & 2 deletions src/api/quest/factory.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type Quest, toQuest } from "./model";
import { questRepository } from "./repository";
import { QuestRepository, questRepository } from "./repository";
import type {
CreateQuestParams,
DeleteQuestParams,
Expand All @@ -10,7 +10,7 @@ import type {
} from "./types";

export const createFactory = () => {
const repository = questRepository;
const repository: QuestRepository = questRepository;

return {
listQuests: async () => {
Expand Down
11 changes: 6 additions & 5 deletions src/api/tag/factory.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
import { tagRepository } from "./repository";
import { toTag } from "./model";
import { TagRepository, tagRepository } from "./repository";
import type { CreateTagParams, DeleteTagParams, UpdateTagParams } from "./type";

export const createFactory = () => {
const repository = tagRepository;
const repository: TagRepository = tagRepository;

return {
listTags: async () => {
const response = await repository.list();
return response.tags;
return response.tags.map((tag) => toTag(tag));
},
createTag: async (CreateTagParams: CreateTagParams) => {
const response = await repository.create(CreateTagParams);
return response;
return toTag(response);
},
deleteTag: async (DeleteTagParams: DeleteTagParams) => {
await repository.destroy(DeleteTagParams);
},
updateTag: async (UpdateTagParams: UpdateTagParams) => {
const response = await repository.update(UpdateTagParams);
return response;
return toTag(response);
},
};
};
5 changes: 3 additions & 2 deletions src/api/user/factory.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { toUser } from "./model";
import { userRepository } from "./repository";
import { UserRepository, userRepository } from "./repository";
import type { AuthParams, UpdateLoginUserParams } from "./types";

export const createFactory = () => {
const repository = userRepository;
const repository: UserRepository = userRepository;

return {
auth: async (params: AuthParams) => {
await repository.auth(params);
Expand Down
4 changes: 2 additions & 2 deletions src/api/weeklyReport/factory.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { type WeeklyReport, toWeeklyReport } from "./model";
import { weeklyReportsRepository } from "./repository";
import { WeeklyReportRepository, weeklyReportsRepository } from "./repository";
import type { GenerateFeedBackParams } from "./types";

export const createFactory = () => {
const repository = weeklyReportsRepository;
const repository: WeeklyReportRepository = weeklyReportsRepository;

return {
listWeeklyReports: async () => {
Expand Down
8 changes: 4 additions & 4 deletions src/api/weeklyReport/repository.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
import { apiClient } from "../../api/client/apiClient";
import type { GenerateFeedBackRequest, GenerateFeedBackResponse, ListWeeklyReportsResponse } from "./types";

export interface WeeklyReportsRepository {
export interface WeeklyReportRepository {
list: () => Promise<ListWeeklyReportsResponse>;
generateFeedBack: (params: GenerateFeedBackRequest) => Promise<GenerateFeedBackResponse>;
}

const list: WeeklyReportsRepository["list"] = async () => {
const list: WeeklyReportRepository["list"] = async () => {
const response = await apiClient.get("/weekly-reports");
return response;
};

const generateFeedBack: WeeklyReportsRepository["generateFeedBack"] = async (params: GenerateFeedBackRequest) => {
const generateFeedBack: WeeklyReportRepository["generateFeedBack"] = async (params: GenerateFeedBackRequest) => {
const response = await apiClient.post(`/weekly-reports/feedback/${params.weeklyReportId}`);
return response;
};

export const weeklyReportsRepository: WeeklyReportsRepository = {
export const weeklyReportsRepository: WeeklyReportRepository = {
list,
generateFeedBack,
};

0 comments on commit 214cb60

Please sign in to comment.