email actions + sent list + action list + archive list + trash list

This commit is contained in:
hamid zarghami
2025-07-12 16:01:17 +03:30
parent fac9159ec0
commit 663dd1a9db
45 changed files with 1947 additions and 326 deletions
+83
View File
@@ -0,0 +1,83 @@
import axios from "../config/axios";
import { BulkActionRequest } from "../pages/received/types/Types";
// Bulk action for multiple messages
export const bulkAction = async (request: BulkActionRequest) => {
const { data } = await axios.post(`/email/messages/bulk-action`, request);
return data;
};
// Mark message as seen
export const markMessageAsSeen = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/seen`);
return data;
};
// Move message to archive
export const moveMessageToArchive = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/archive`);
return data;
};
// Move message to favorite
export const moveMessageToFavorite = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/favorite`);
return data;
};
// Move message to trash
export const moveMessageToTrash = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/trash`);
return data;
};
// Delete message permanently (only for trash mailbox)
export const deleteMessagePermanently = async (messageId: number) => {
const { data } = await axios.delete(`/email/messages/${messageId}`);
return data;
};
// Send email
export const sendEmail = async (emailData: unknown) => {
const { data } = await axios.post(`/email/send`, emailData);
return data;
};
// Update draft
export const updateDraft = async (messageId: number, draftData: unknown) => {
const { data } = await axios.patch(
`/email/messages/drafts/${messageId}`,
draftData
);
return data;
};
// Delete draft
export const deleteDraft = async (messageId: number) => {
const { data } = await axios.delete(`/email/messages/drafts/${messageId}`);
return data;
};
// Send draft
export const sendDraft = async (messageId: number) => {
const { data } = await axios.post(`/email/messages/drafts/${messageId}/send`);
return data;
};
// Unfavorite message
export const unfavoriteMessage = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/unfavorite`);
return data;
};
// Unarchive message
export const unarchiveMessage = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/unarchive`);
return data;
};
// Restore message from trash
export const restoreMessage = async (messageId: number) => {
const { data } = await axios.patch(`/email/messages/${messageId}/restore`);
return data;
};