node-appwrite
Version:
Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API
1,783 lines (1,467 loc) • 62.4 kB
JavaScript
const Service = require('../service.js');
const AppwriteException = require('../exception.js');
const InputFile = require('../inputFile.js');
const client = require('../client.js');
const Stream = require('stream');
const { promisify } = require('util');
const fs = require('fs');
const { File } = require('undici');
const Query = require('../query.js');
class Messaging extends Service {
constructor(client)
{
super(client);
}
/**
* List messages
*
* Get a list of all messages from the current Appwrite project.
*
* @param {string[]} queries
* @param {string} search
* @throws {AppwriteException}
* @returns {Promise}
*/
async listMessages(queries, search) {
const apiPath = '/messaging/messages';
let payload = {};
if (typeof queries !== 'undefined') {
payload['queries'] = queries;
}
if (typeof search !== 'undefined') {
payload['search'] = search;
}
return await this.client.call('get', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create email
*
* Create a new email message.
*
* @param {string} messageId
* @param {string} subject
* @param {string} content
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {string[]} cc
* @param {string[]} bcc
* @param {string[]} attachments
* @param {boolean} draft
* @param {boolean} html
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async createEmail(messageId, subject, content, topics, users, targets, cc, bcc, attachments, draft, html, scheduledAt) {
const apiPath = '/messaging/messages/email';
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof subject === 'undefined') {
throw new AppwriteException('Missing required parameter: "subject"');
}
if (typeof content === 'undefined') {
throw new AppwriteException('Missing required parameter: "content"');
}
if (typeof messageId !== 'undefined') {
payload['messageId'] = messageId;
}
if (typeof subject !== 'undefined') {
payload['subject'] = subject;
}
if (typeof content !== 'undefined') {
payload['content'] = content;
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof cc !== 'undefined') {
payload['cc'] = cc;
}
if (typeof bcc !== 'undefined') {
payload['bcc'] = bcc;
}
if (typeof attachments !== 'undefined') {
payload['attachments'] = attachments;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof html !== 'undefined') {
payload['html'] = html;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update email
*
* Update an email message by its unique ID.
*
*
* @param {string} messageId
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {string} subject
* @param {string} content
* @param {boolean} draft
* @param {boolean} html
* @param {string[]} cc
* @param {string[]} bcc
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateEmail(messageId, topics, users, targets, subject, content, draft, html, cc, bcc, scheduledAt) {
const apiPath = '/messaging/messages/email/{messageId}'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof subject !== 'undefined') {
payload['subject'] = subject;
}
if (typeof content !== 'undefined') {
payload['content'] = content;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof html !== 'undefined') {
payload['html'] = html;
}
if (typeof cc !== 'undefined') {
payload['cc'] = cc;
}
if (typeof bcc !== 'undefined') {
payload['bcc'] = bcc;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create push notification
*
* Create a new push notification.
*
* @param {string} messageId
* @param {string} title
* @param {string} body
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {object} data
* @param {string} action
* @param {string} image
* @param {string} icon
* @param {string} sound
* @param {string} color
* @param {string} tag
* @param {string} badge
* @param {boolean} draft
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async createPush(messageId, title, body, topics, users, targets, data, action, image, icon, sound, color, tag, badge, draft, scheduledAt) {
const apiPath = '/messaging/messages/push';
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof title === 'undefined') {
throw new AppwriteException('Missing required parameter: "title"');
}
if (typeof body === 'undefined') {
throw new AppwriteException('Missing required parameter: "body"');
}
if (typeof messageId !== 'undefined') {
payload['messageId'] = messageId;
}
if (typeof title !== 'undefined') {
payload['title'] = title;
}
if (typeof body !== 'undefined') {
payload['body'] = body;
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof data !== 'undefined') {
payload['data'] = data;
}
if (typeof action !== 'undefined') {
payload['action'] = action;
}
if (typeof image !== 'undefined') {
payload['image'] = image;
}
if (typeof icon !== 'undefined') {
payload['icon'] = icon;
}
if (typeof sound !== 'undefined') {
payload['sound'] = sound;
}
if (typeof color !== 'undefined') {
payload['color'] = color;
}
if (typeof tag !== 'undefined') {
payload['tag'] = tag;
}
if (typeof badge !== 'undefined') {
payload['badge'] = badge;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update push notification
*
* Update a push notification by its unique ID.
*
*
* @param {string} messageId
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {string} title
* @param {string} body
* @param {object} data
* @param {string} action
* @param {string} image
* @param {string} icon
* @param {string} sound
* @param {string} color
* @param {string} tag
* @param {number} badge
* @param {boolean} draft
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async updatePush(messageId, topics, users, targets, title, body, data, action, image, icon, sound, color, tag, badge, draft, scheduledAt) {
const apiPath = '/messaging/messages/push/{messageId}'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof title !== 'undefined') {
payload['title'] = title;
}
if (typeof body !== 'undefined') {
payload['body'] = body;
}
if (typeof data !== 'undefined') {
payload['data'] = data;
}
if (typeof action !== 'undefined') {
payload['action'] = action;
}
if (typeof image !== 'undefined') {
payload['image'] = image;
}
if (typeof icon !== 'undefined') {
payload['icon'] = icon;
}
if (typeof sound !== 'undefined') {
payload['sound'] = sound;
}
if (typeof color !== 'undefined') {
payload['color'] = color;
}
if (typeof tag !== 'undefined') {
payload['tag'] = tag;
}
if (typeof badge !== 'undefined') {
payload['badge'] = badge;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create SMS
*
* Create a new SMS message.
*
* @param {string} messageId
* @param {string} content
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {boolean} draft
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async createSms(messageId, content, topics, users, targets, draft, scheduledAt) {
const apiPath = '/messaging/messages/sms';
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof content === 'undefined') {
throw new AppwriteException('Missing required parameter: "content"');
}
if (typeof messageId !== 'undefined') {
payload['messageId'] = messageId;
}
if (typeof content !== 'undefined') {
payload['content'] = content;
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update SMS
*
* Update an email message by its unique ID.
*
*
* @param {string} messageId
* @param {string[]} topics
* @param {string[]} users
* @param {string[]} targets
* @param {string} content
* @param {boolean} draft
* @param {string} scheduledAt
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateSms(messageId, topics, users, targets, content, draft, scheduledAt) {
const apiPath = '/messaging/messages/sms/{messageId}'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof topics !== 'undefined') {
payload['topics'] = topics;
}
if (typeof users !== 'undefined') {
payload['users'] = users;
}
if (typeof targets !== 'undefined') {
payload['targets'] = targets;
}
if (typeof content !== 'undefined') {
payload['content'] = content;
}
if (typeof draft !== 'undefined') {
payload['draft'] = draft;
}
if (typeof scheduledAt !== 'undefined') {
payload['scheduledAt'] = scheduledAt;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Get message
*
* Get a message by its unique ID.
*
*
* @param {string} messageId
* @throws {AppwriteException}
* @returns {Promise}
*/
async getMessage(messageId) {
const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
return await this.client.call('get', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Delete message
*
* Delete a message. If the message is not a draft or scheduled, but has been
* sent, this will not recall the message.
*
* @param {string} messageId
* @throws {AppwriteException}
* @returns {Promise}
*/
async delete(messageId) {
const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
return await this.client.call('delete', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* List message logs
*
* Get the message activity logs listed by its unique ID.
*
* @param {string} messageId
* @param {string[]} queries
* @throws {AppwriteException}
* @returns {Promise}
*/
async listMessageLogs(messageId, queries) {
const apiPath = '/messaging/messages/{messageId}/logs'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof queries !== 'undefined') {
payload['queries'] = queries;
}
return await this.client.call('get', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* List message targets
*
* Get a list of the targets associated with a message.
*
* @param {string} messageId
* @param {string[]} queries
* @throws {AppwriteException}
* @returns {Promise}
*/
async listTargets(messageId, queries) {
const apiPath = '/messaging/messages/{messageId}/targets'.replace('{messageId}', messageId);
let payload = {};
if (typeof messageId === 'undefined') {
throw new AppwriteException('Missing required parameter: "messageId"');
}
if (typeof queries !== 'undefined') {
payload['queries'] = queries;
}
return await this.client.call('get', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* List providers
*
* Get a list of all providers from the current Appwrite project.
*
* @param {string[]} queries
* @param {string} search
* @throws {AppwriteException}
* @returns {Promise}
*/
async listProviders(queries, search) {
const apiPath = '/messaging/providers';
let payload = {};
if (typeof queries !== 'undefined') {
payload['queries'] = queries;
}
if (typeof search !== 'undefined') {
payload['search'] = search;
}
return await this.client.call('get', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create APNS provider
*
* Create a new Apple Push Notification service provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} authKey
* @param {string} authKeyId
* @param {string} teamId
* @param {string} bundleId
* @param {boolean} sandbox
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createApnsProvider(providerId, name, authKey, authKeyId, teamId, bundleId, sandbox, enabled) {
const apiPath = '/messaging/providers/apns';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof authKey !== 'undefined') {
payload['authKey'] = authKey;
}
if (typeof authKeyId !== 'undefined') {
payload['authKeyId'] = authKeyId;
}
if (typeof teamId !== 'undefined') {
payload['teamId'] = teamId;
}
if (typeof bundleId !== 'undefined') {
payload['bundleId'] = bundleId;
}
if (typeof sandbox !== 'undefined') {
payload['sandbox'] = sandbox;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update APNS provider
*
* Update a Apple Push Notification service provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} authKey
* @param {string} authKeyId
* @param {string} teamId
* @param {string} bundleId
* @param {boolean} sandbox
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateApnsProvider(providerId, name, enabled, authKey, authKeyId, teamId, bundleId, sandbox) {
const apiPath = '/messaging/providers/apns/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof authKey !== 'undefined') {
payload['authKey'] = authKey;
}
if (typeof authKeyId !== 'undefined') {
payload['authKeyId'] = authKeyId;
}
if (typeof teamId !== 'undefined') {
payload['teamId'] = teamId;
}
if (typeof bundleId !== 'undefined') {
payload['bundleId'] = bundleId;
}
if (typeof sandbox !== 'undefined') {
payload['sandbox'] = sandbox;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create FCM provider
*
* Create a new Firebase Cloud Messaging provider.
*
* @param {string} providerId
* @param {string} name
* @param {object} serviceAccountJSON
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createFcmProvider(providerId, name, serviceAccountJSON, enabled) {
const apiPath = '/messaging/providers/fcm';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof serviceAccountJSON !== 'undefined') {
payload['serviceAccountJSON'] = serviceAccountJSON;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update FCM provider
*
* Update a Firebase Cloud Messaging provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {object} serviceAccountJSON
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateFcmProvider(providerId, name, enabled, serviceAccountJSON) {
const apiPath = '/messaging/providers/fcm/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof serviceAccountJSON !== 'undefined') {
payload['serviceAccountJSON'] = serviceAccountJSON;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Mailgun provider
*
* Create a new Mailgun provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} apiKey
* @param {string} domain
* @param {boolean} isEuRegion
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createMailgunProvider(providerId, name, apiKey, domain, isEuRegion, fromName, fromEmail, replyToName, replyToEmail, enabled) {
const apiPath = '/messaging/providers/mailgun';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof domain !== 'undefined') {
payload['domain'] = domain;
}
if (typeof isEuRegion !== 'undefined') {
payload['isEuRegion'] = isEuRegion;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Mailgun provider
*
* Update a Mailgun provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {string} apiKey
* @param {string} domain
* @param {boolean} isEuRegion
* @param {boolean} enabled
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateMailgunProvider(providerId, name, apiKey, domain, isEuRegion, enabled, fromName, fromEmail, replyToName, replyToEmail) {
const apiPath = '/messaging/providers/mailgun/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof domain !== 'undefined') {
payload['domain'] = domain;
}
if (typeof isEuRegion !== 'undefined') {
payload['isEuRegion'] = isEuRegion;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Msg91 provider
*
* Create a new MSG91 provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} templateId
* @param {string} senderId
* @param {string} authKey
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createMsg91Provider(providerId, name, templateId, senderId, authKey, enabled) {
const apiPath = '/messaging/providers/msg91';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof templateId !== 'undefined') {
payload['templateId'] = templateId;
}
if (typeof senderId !== 'undefined') {
payload['senderId'] = senderId;
}
if (typeof authKey !== 'undefined') {
payload['authKey'] = authKey;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Msg91 provider
*
* Update a MSG91 provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} templateId
* @param {string} senderId
* @param {string} authKey
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateMsg91Provider(providerId, name, enabled, templateId, senderId, authKey) {
const apiPath = '/messaging/providers/msg91/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof templateId !== 'undefined') {
payload['templateId'] = templateId;
}
if (typeof senderId !== 'undefined') {
payload['senderId'] = senderId;
}
if (typeof authKey !== 'undefined') {
payload['authKey'] = authKey;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Sendgrid provider
*
* Create a new Sendgrid provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} apiKey
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createSendgridProvider(providerId, name, apiKey, fromName, fromEmail, replyToName, replyToEmail, enabled) {
const apiPath = '/messaging/providers/sendgrid';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Sendgrid provider
*
* Update a Sendgrid provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} apiKey
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateSendgridProvider(providerId, name, enabled, apiKey, fromName, fromEmail, replyToName, replyToEmail) {
const apiPath = '/messaging/providers/sendgrid/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create SMTP provider
*
* Create a new SMTP provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} host
* @param {number} port
* @param {string} username
* @param {string} password
* @param {SmtpEncryption} encryption
* @param {boolean} autoTLS
* @param {string} mailer
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createSmtpProvider(providerId, name, host, port, username, password, encryption, autoTLS, mailer, fromName, fromEmail, replyToName, replyToEmail, enabled) {
const apiPath = '/messaging/providers/smtp';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof host === 'undefined') {
throw new AppwriteException('Missing required parameter: "host"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof host !== 'undefined') {
payload['host'] = host;
}
if (typeof port !== 'undefined') {
payload['port'] = port;
}
if (typeof username !== 'undefined') {
payload['username'] = username;
}
if (typeof password !== 'undefined') {
payload['password'] = password;
}
if (typeof encryption !== 'undefined') {
payload['encryption'] = encryption;
}
if (typeof autoTLS !== 'undefined') {
payload['autoTLS'] = autoTLS;
}
if (typeof mailer !== 'undefined') {
payload['mailer'] = mailer;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update SMTP provider
*
* Update a SMTP provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {string} host
* @param {number} port
* @param {string} username
* @param {string} password
* @param {SmtpEncryption} encryption
* @param {boolean} autoTLS
* @param {string} mailer
* @param {string} fromName
* @param {string} fromEmail
* @param {string} replyToName
* @param {string} replyToEmail
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateSmtpProvider(providerId, name, host, port, username, password, encryption, autoTLS, mailer, fromName, fromEmail, replyToName, replyToEmail, enabled) {
const apiPath = '/messaging/providers/smtp/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof host !== 'undefined') {
payload['host'] = host;
}
if (typeof port !== 'undefined') {
payload['port'] = port;
}
if (typeof username !== 'undefined') {
payload['username'] = username;
}
if (typeof password !== 'undefined') {
payload['password'] = password;
}
if (typeof encryption !== 'undefined') {
payload['encryption'] = encryption;
}
if (typeof autoTLS !== 'undefined') {
payload['autoTLS'] = autoTLS;
}
if (typeof mailer !== 'undefined') {
payload['mailer'] = mailer;
}
if (typeof fromName !== 'undefined') {
payload['fromName'] = fromName;
}
if (typeof fromEmail !== 'undefined') {
payload['fromEmail'] = fromEmail;
}
if (typeof replyToName !== 'undefined') {
payload['replyToName'] = replyToName;
}
if (typeof replyToEmail !== 'undefined') {
payload['replyToEmail'] = replyToEmail;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Telesign provider
*
* Create a new Telesign provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} from
* @param {string} customerId
* @param {string} apiKey
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createTelesignProvider(providerId, name, from, customerId, apiKey, enabled) {
const apiPath = '/messaging/providers/telesign';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
if (typeof customerId !== 'undefined') {
payload['customerId'] = customerId;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Telesign provider
*
* Update a Telesign provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} customerId
* @param {string} apiKey
* @param {string} from
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateTelesignProvider(providerId, name, enabled, customerId, apiKey, from) {
const apiPath = '/messaging/providers/telesign/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof customerId !== 'undefined') {
payload['customerId'] = customerId;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Textmagic provider
*
* Create a new Textmagic provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} from
* @param {string} username
* @param {string} apiKey
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createTextmagicProvider(providerId, name, from, username, apiKey, enabled) {
const apiPath = '/messaging/providers/textmagic';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
if (typeof username !== 'undefined') {
payload['username'] = username;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Textmagic provider
*
* Update a Textmagic provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} username
* @param {string} apiKey
* @param {string} from
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateTextmagicProvider(providerId, name, enabled, username, apiKey, from) {
const apiPath = '/messaging/providers/textmagic/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof username !== 'undefined') {
payload['username'] = username;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Twilio provider
*
* Create a new Twilio provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} from
* @param {string} accountSid
* @param {string} authToken
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createTwilioProvider(providerId, name, from, accountSid, authToken, enabled) {
const apiPath = '/messaging/providers/twilio';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
if (typeof accountSid !== 'undefined') {
payload['accountSid'] = accountSid;
}
if (typeof authToken !== 'undefined') {
payload['authToken'] = authToken;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Twilio provider
*
* Update a Twilio provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} accountSid
* @param {string} authToken
* @param {string} from
* @throws {AppwriteException}
* @returns {Promise}
*/
async updateTwilioProvider(providerId, name, enabled, accountSid, authToken, from) {
const apiPath = '/messaging/providers/twilio/{providerId}'.replace('{providerId}', providerId);
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
if (typeof accountSid !== 'undefined') {
payload['accountSid'] = accountSid;
}
if (typeof authToken !== 'undefined') {
payload['authToken'] = authToken;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
return await this.client.call('patch', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Create Vonage provider
*
* Create a new Vonage provider.
*
* @param {string} providerId
* @param {string} name
* @param {string} from
* @param {string} apiKey
* @param {string} apiSecret
* @param {boolean} enabled
* @throws {AppwriteException}
* @returns {Promise}
*/
async createVonageProvider(providerId, name, from, apiKey, apiSecret, enabled) {
const apiPath = '/messaging/providers/vonage';
let payload = {};
if (typeof providerId === 'undefined') {
throw new AppwriteException('Missing required parameter: "providerId"');
}
if (typeof name === 'undefined') {
throw new AppwriteException('Missing required parameter: "name"');
}
if (typeof providerId !== 'undefined') {
payload['providerId'] = providerId;
}
if (typeof name !== 'undefined') {
payload['name'] = name;
}
if (typeof from !== 'undefined') {
payload['from'] = from;
}
if (typeof apiKey !== 'undefined') {
payload['apiKey'] = apiKey;
}
if (typeof apiSecret !== 'undefined') {
payload['apiSecret'] = apiSecret;
}
if (typeof enabled !== 'undefined') {
payload['enabled'] = enabled;
}
return await this.client.call('post', apiPath, {
'content-type': 'application/json',
}, payload);
}
/**
* Update Vonage provider
*
* Update a Vonage provider by its unique ID.
*
* @param {string} providerId
* @param {string} name
* @param {boolean} enabled
* @param {string} apiKey
* @param {string} apiSecret
* @param {string} from
* @throw