Files
modoboa/frontend/src/api/webmail.js
T

141 lines
3.7 KiB
JavaScript

import repository from './repository'
export default {
getUserMailboxes(mailbox) {
const params = {}
if (mailbox) {
params.mailbox = mailbox
}
return repository.get('/webmail/mailboxes/', { params })
},
getUserMailboxQuota(mailbox) {
const params = { mailbox }
return repository.get('/webmail/mailboxes/quota/', { params })
},
getUserMailboxUnseen(mailbox) {
const params = { mailbox }
return repository.get('webmail/mailboxes/unseen/', { params })
},
createUserMailbox(body) {
return repository.post('/webmail/mailboxes/', body)
},
renameUserMailbox(body) {
return repository.post('/webmail/mailboxes/rename/', body)
},
compressUserMailbox(body) {
return repository.post('/webmail/mailboxes/compress/', body)
},
deleteUserMailbox(body) {
return repository.post('/webmail/mailboxes/delete/', body)
},
emptyUserMailbox(mailbox) {
const body = { name: mailbox }
return repository.post('/webmail/mailboxes/empty/', body)
},
getMailboxEmails(mailbox, options) {
const params = {
mailbox,
...options,
}
return repository.get(`/webmail/emails/`, { params })
},
getEmailContent(mailbox, mailid, options) {
const params = {
mailbox,
mailid,
...options,
}
return repository.get(`/webmail/emails/content/`, { params })
},
getEmailSource(mailbox, mailid) {
const params = {
mailbox,
mailid,
}
return repository.get(`/webmail/emails/source/`, { params })
},
getEmailAttachment(mailbox, mailid, partnum) {
const params = {
mailbox,
mailid,
partnum,
}
return repository.get(`/webmail/emails/attachment/`, {
params,
responseType: 'blob',
})
},
moveSelection(source, destination, selection) {
const body = {
source,
destination,
selection,
}
return repository.post('/webmail/emails/move/', body)
},
deleteSelection(source, selection) {
const body = {
source,
selection,
}
return repository.post('/webmail/emails/delete/', body)
},
markSelectionAsJunk(source, selection) {
const body = {
source,
selection,
}
return repository.post('/webmail/emails/mark_as_junk/', body)
},
markSelectionAsNotJunk(source, selection) {
const body = {
source,
selection,
}
return repository.post('/webmail/emails/mark_as_not_junk/', body)
},
flagSelection(mailbox, selection, status) {
const body = {
mailbox,
selection,
status,
}
return repository.post('/webmail/emails/flag/', body)
},
sendEmailFromComposeSession(uid, body) {
return repository.post(`/webmail/compose-sessions/${uid}/send/`, body)
},
getComposeSession(uid) {
return repository.get(`/webmail/compose-sessions/${uid}/`)
},
createComposeSession() {
return repository.post('/webmail/compose-sessions/')
},
getAllowedSenders() {
return repository.get('/webmail/compose-sessions/allowed_senders/')
},
uploadAttachment(sessionUid, body) {
return repository.post(
`/webmail/compose-sessions/${sessionUid}/attachments/`,
body,
{
headers: { 'Content-Type': 'multipart/form-data' },
}
)
},
removeAttachment(sessionUid, name) {
return repository.delete(
`/webmail/compose-sessions/${sessionUid}/attachments/${name}/`
)
},
getScheduledMessage(messageId) {
return repository.get(`/webmail/scheduled-messages/${messageId}/`)
},
updateScheduledMessage(messageId, data) {
return repository.patch(`/webmail/scheduled-messages/${messageId}/`, data)
},
deleteScheduledMessage(messageId) {
return repository.delete(`/webmail/scheduled-messages/${messageId}/`)
},
}