@marxlnfcs/wildduck-api
Version:
Provides a client to interact with the wildduck api
178 lines (177 loc) • 8.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WildduckMessagesService = void 0;
const client_component_1 = require("../../client-component");
const create_http_client_1 = require("../../../internals/create-http-client");
class WildduckMessagesService extends client_component_1.WildduckClientComponent {
deleteMessage(user, mailbox, message) {
return new Promise(async (resolve, reject) => {
this.http.delete('/users/{user}/mailboxes/{mailbox}/messages/{message}', { params: { user, mailbox, message } })
.then(r => {
this.events.emitFromResponse(this.deleteMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.deleteMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
getMessage(user, mailbox, message, options) {
return new Promise(async (resolve, reject) => {
this.http.get('/users/{user}/mailboxes/{mailbox}/messages/{message}', { params: { user, mailbox, message }, query: options })
.then(r => {
this.events.emitFromResponse(this.getMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.getMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
deleteMessagesInMailbox(user, mailbox, options) {
return new Promise(async (resolve, reject) => {
this.http.delete('/users/{user}/mailboxes/{mailbox}/messages', { params: { user, mailbox }, query: options })
.then(r => {
this.events.emitFromResponse(this.deleteMessagesInMailbox, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.deleteMessagesInMailbox, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
getMessagesInMailbox(user, mailbox, options) {
return new Promise(async (resolve, reject) => {
this.http.get('/users/{user}/mailboxes/{mailbox}/messages', { params: { user, mailbox }, query: options })
.then(r => {
this.events.emitFromResponse(this.getMessagesInMailbox, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.getMessagesInMailbox, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
updateMessage(user, mailbox, dto) {
return new Promise(async (resolve, reject) => {
this.http.put('/users/{user}/mailboxes/{mailbox}/messages', { params: { user, mailbox }, body: dto })
.then(r => {
this.events.emitFromResponse(this.updateMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.updateMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
uploadMessage(user, mailbox, dto) {
return new Promise(async (resolve, reject) => {
this.http.post('/users/{user}/mailboxes/{mailbox}/messages', { params: { user, mailbox }, body: dto })
.then(r => {
this.events.emitFromResponse(this.uploadMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.uploadMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
forwardMessage(user, mailbox, message, dto) {
return new Promise(async (resolve, reject) => {
this.http.post('/users/{user}/mailboxes/{mailbox}/messages/{message}/forward', { params: { user, mailbox, message }, body: dto })
.then(r => {
this.events.emitFromResponse(this.forwardMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.forwardMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
downloadAttachment(user, mailbox, message, attachment) {
return new Promise(async (resolve, reject) => {
this.http.download('/users/{user}/mailboxes/{mailbox}/messages/{message}/attachments/{attachment}', { params: { user, mailbox, message, attachment } })
.then(r => {
this.events.emitFromResponse(this.downloadAttachment, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.downloadAttachment, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
getMessageSource(user, mailbox, message) {
return new Promise(async (resolve, reject) => {
this.http.get('/users/{user}/mailboxes/{mailbox}/messages/{message}/message.eml', { params: { user, mailbox, message }, responseType: 'text' })
.then(r => {
this.events.emitFromResponse(this.getMessageSource, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.getMessageSource, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
deleteOutboundMessage(user, queueId) {
return new Promise(async (resolve, reject) => {
this.http.delete('/users/{user}/outbound/{queueId}', { params: { user, queueId } })
.then(r => {
this.events.emitFromResponse(this.deleteOutboundMessage, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.deleteOutboundMessage, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
searchMessages(user, options) {
return new Promise(async (resolve, reject) => {
this.http.get('/users/{user}/search', { params: { user }, query: options })
.then(r => {
this.events.emitFromResponse(this.searchMessages, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.searchMessages, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
searchAndUpdateMessages(user, dto, options) {
return new Promise(async (resolve, reject) => {
this.http.post('/users/{user}/search', { params: { user }, query: options })
.then(r => {
this.events.emitFromResponse(this.searchAndUpdateMessages, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.searchAndUpdateMessages, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
submitDraftForDelivery(user, mailbox, message, dto) {
return new Promise(async (resolve, reject) => {
this.http.post('/users/{user}/mailboxes/{mailbox}/messages/{message}/submit', { params: { user, mailbox, message }, body: dto })
.then(r => {
this.events.emitFromResponse(this.submitDraftForDelivery, r);
resolve(r.data);
})
.catch((e) => {
this.events.emitFromError(this.submitDraftForDelivery, e);
reject((0, create_http_client_1.createHttpException)(e));
});
});
}
}
exports.WildduckMessagesService = WildduckMessagesService;