ee-ts-util
Version:
typescript utilities and functions
66 lines • 3.01 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const googleapis_1 = require("googleapis");
const client_1 = require("./client");
exports.buildAccountCatalogAdapter = (gsuiteClient) => (listAccountOptions) => __awaiter(this, void 0, void 0, function* () {
yield client_1.authorize(gsuiteClient);
return listAccounts(gsuiteClient, listAccountOptions);
});
exports.buildAccountCreatorAdapter = (gSuiteClient) => (accountParamsDto) => __awaiter(this, void 0, void 0, function* () {
yield client_1.authorize(gSuiteClient);
return createAccount(gSuiteClient, accountParamsDto);
});
exports.buildAccountRemoverAdapter = (gSuiteClient) => (userEmail) => __awaiter(this, void 0, void 0, function* () {
yield client_1.authorize(gSuiteClient);
return removeAccount(gSuiteClient, userEmail);
});
const createAccount = (gSuiteClient, resource) => {
const admin = googleapis_1.google.admin("directory_v1");
return new Promise((resolve, reject) => {
admin.users.insert({
auth: gSuiteClient,
resource,
}, (err, response) => {
if (err) {
return reject("GSuite Create Account Error -" + err + " " + JSON.stringify(err));
}
return resolve(response.data);
});
});
};
const removeAccount = (gSuiteClient, userEmail) => {
const admin = googleapis_1.google.admin("directory_v1");
return new Promise((resolve, reject) => {
admin.users.delete({
auth: gSuiteClient,
userKey: userEmail,
}, (err, response) => {
if (err) {
return reject("GSuite Remove Account Error -" + err + " " + JSON.stringify(err));
}
return resolve(response.status === 204);
});
});
};
const listAccounts = (gsuiteClient, listAccountsOptions) => {
const admin = googleapis_1.google.admin("directory_v1");
return new Promise((resolve, reject) => {
admin.users.list(Object.assign({ auth: gsuiteClient }, listAccountsOptions), (err, response) => {
if (err) {
return reject("GSuite List Account Error -" + err + " " + JSON.stringify(err));
}
return resolve(response.data.users ?
response.data.users.map((user) => user) :
[]);
});
});
};
//# sourceMappingURL=accountAdapter.js.map