feat(feedback): add problem reporting flow
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import type {
|
||||
FeedbackSubmitResponse,
|
||||
SubmitFeedbackInput,
|
||||
} from "@/data/dto/feedback";
|
||||
import type { IFeedbackRepository } from "@/data/repositories/interfaces";
|
||||
import { FeedbackApi, feedbackApi } from "@/data/services/api/feedback_api";
|
||||
import { Result } from "@/utils/result";
|
||||
|
||||
import { createLazySingleton } from "./lazy_singleton";
|
||||
|
||||
export class FeedbackRepository implements IFeedbackRepository {
|
||||
constructor(private readonly api: FeedbackApi) {}
|
||||
|
||||
submit(input: SubmitFeedbackInput): Promise<Result<FeedbackSubmitResponse>> {
|
||||
return Result.wrap(() => this.api.submit(input));
|
||||
}
|
||||
}
|
||||
|
||||
export const getFeedbackRepository = createLazySingleton<IFeedbackRepository>(
|
||||
() => new FeedbackRepository(feedbackApi),
|
||||
);
|
||||
@@ -4,12 +4,14 @@
|
||||
|
||||
export * from "./auth_repository";
|
||||
export * from "./chat_repository";
|
||||
export * from "./feedback_repository";
|
||||
export * from "./metrics_repository";
|
||||
export * from "./payment_repository";
|
||||
export * from "./private_room_repository";
|
||||
export * from "./user_repository";
|
||||
export * from "./interfaces/iauth_repository";
|
||||
export * from "./interfaces/ichat_repository";
|
||||
export * from "./interfaces/ifeedback_repository";
|
||||
export * from "./interfaces/imetrics_repository";
|
||||
export * from "./interfaces/ipayment_repository";
|
||||
export * from "./interfaces/iprivate_room_repository";
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import type {
|
||||
FeedbackSubmitResponse,
|
||||
SubmitFeedbackInput,
|
||||
} from "@/data/dto/feedback";
|
||||
import type { Result } from "@/utils/result";
|
||||
|
||||
export interface IFeedbackRepository {
|
||||
submit(input: SubmitFeedbackInput): Promise<Result<FeedbackSubmitResponse>>;
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
export * from "./iauth_repository";
|
||||
export * from "./ichat_repository";
|
||||
export * from "./ifeedback_repository";
|
||||
export * from "./imetrics_repository";
|
||||
export * from "./ipayment_repository";
|
||||
export * from "./iprivate_room_repository";
|
||||
|
||||
Reference in New Issue
Block a user