serverless-offline-msk
Version:
A serverless offline plugin that enables AWS MSK events
88 lines (73 loc) • 1.77 kB
JavaScript
;
const utils = require('./utils');
/**
* Create an organization and optionally register a new user
*/
const create = async (sdk, { orgName, username, email, password }) => {
if (!orgName) {
throw new Error('An "orgName" is required to create an organization.');
}
const endpoint = `${sdk.getDomain('core')}/core/tenants`;
return utils.request({
endpoint,
method: 'POST',
data: {
ownerUserName: username || orgName,
ownerPassword: password,
ownerEmail: email,
title: orgName,
tenantName: orgName,
},
});
};
/**
* Get Organization By Name
*/
const get = async (sdk, { orgName }) => {
const endpoint = `${sdk.getDomain('core')}/core/tenants/${orgName}`;
return await utils.request({
accessKey: sdk.accessKey,
endpoint,
method: 'GET',
});
};
/**
* List Organizations By User
*/
const list = async (sdk, { username }) => {
const endpoint = `${sdk.getDomain('core')}/core/tenants?userName=${username}`;
return await utils.request({
accessKey: sdk.accessKey,
endpoint,
method: 'GET',
});
};
/**
* Validate User and Organization name
*/
const validate = async (sdk, { orgName, username }) => {
if (!orgName) {
throw new Error('An "orgName" is required for validation.');
}
const endpoint = `${sdk.getDomain('core')}/core/validate/tenants`;
const res = await utils.request({
accessKey: sdk.accessKey,
endpoint,
method: 'POST',
data: {
ownerUserName: username || orgName,
title: orgName,
tenantName: orgName,
},
});
if (res && res.validationErrors && res.validationErrors.length) {
return res.validationErrors;
}
return null;
};
module.exports = {
get,
list,
create,
validate,
};