phx-node
Version:
PHX NODE
80 lines (79 loc) • 2.1 kB
TypeScript
import { HttpService } from "@nestjs/axios";
import { ConfigService } from "@nestjs/config";
import { ActionCode, Attachment, EmailType, IGroupRequestType, NotificationType } from "./push-notification.service";
export interface PushNotiMobileV2 {
title: string;
message: string;
module_code: string;
app: string;
payload: Record<string, unknown>;
note?: string;
description?: string;
}
export interface InappNotiEmailV2 {
emailType: EmailType;
subject: string;
title: string;
previewText: string;
callToActionURL?: string;
callToActionText?: string;
content?: string;
listRequests?: IGroupRequestType[];
description?: string;
tag?: string;
attachments?: Attachment[];
footerMessage?: string;
}
export interface RequiredActionV2 {
task_target_id: string;
due_date?: string;
}
export interface CompleteRequiredActionV2 {
hostname: string;
user_id: number;
app?: string;
action_code: string;
task_target_id: string;
}
export interface PushInappNotiV2 {
hostname: string;
send_to_user_id: number;
student_id?: number;
action_code: ActionCode;
notification_type?: NotificationType;
call_to_action_url?: string;
mobile_push?: {
enabled: true;
data: PushNotiMobileV2;
} | {
enabled: false;
};
email_push?: {
enabled: true;
data: InappNotiEmailV2;
} | {
enabled: false;
};
create_required_action?: {
enabled: true;
data: RequiredActionV2;
} | {
enabled: false;
};
}
export declare class PHXPushNotificationServiceV2 {
private readonly httpService;
private readonly configService;
private readonly logger;
constructor(httpService: HttpService, configService: ConfigService);
private pushNoti;
private complete;
send(payload: PushInappNotiV2): Promise<{
status: string;
message: string;
}>;
completeRequireAction(payload: CompleteRequiredActionV2): Promise<{
status: string;
message: string;
}>;
}