31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { Injectable } from "@nestjs/common";
|
|
import { Observable } from "rxjs";
|
|
|
|
import { WildDuckBaseService } from "./wildduck-base.service";
|
|
import { ArchiveCreateResponse, ArchiveListResponse, ArchiveRestoreResponse } from "../interfaces/archive-response.interface";
|
|
import { ArchiveMessageData } from "../interfaces/archive.interface";
|
|
|
|
@Injectable()
|
|
export class WildDuckArchiveService extends WildDuckBaseService {
|
|
/**
|
|
* List archived messages
|
|
*/
|
|
listArchivedMessages(params?: { user?: string; limit?: number; page?: number }): Observable<ArchiveListResponse> {
|
|
return this.get<ArchiveListResponse>("/archive", params);
|
|
}
|
|
|
|
/**
|
|
* Archive a message
|
|
*/
|
|
archiveMessage(userId: string, mailboxId: string, messageId: number, data?: ArchiveMessageData): Observable<ArchiveCreateResponse> {
|
|
return this.post<ArchiveCreateResponse>(`/users/${userId}/mailboxes/${mailboxId}/messages/${messageId}/archive`, data);
|
|
}
|
|
|
|
/**
|
|
* Restore archived message
|
|
*/
|
|
restoreMessage(archiveId: string): Observable<ArchiveRestoreResponse> {
|
|
return this.post<ArchiveRestoreResponse>(`/archive/${archiveId}/restore`);
|
|
}
|
|
}
|