UNPKG

mongodb-stitch

Version:

[![Join the chat at https://gitter.im/mongodb/stitch](https://badges.gitter.im/mongodb/stitch.svg)](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

382 lines 17 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "bson", "mongodb-stitch-core-sdk", "./apps/AppsResources", "./authProviders/AuthProvidersResources", "./authProviders/ProviderConfigs", "./functions/FunctionsResources", "./services/rules/RulesResources", "./services/ServiceConfigs", "./services/ServicesResources", "./userRegistrations/UserRegistrationsResources", "./users/UsersResources"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var bson_1 = require("bson"); var mongodb_stitch_core_sdk_1 = require("mongodb-stitch-core-sdk"); var AppsResources_1 = require("./apps/AppsResources"); var AuthProvidersResources_1 = require("./authProviders/AuthProvidersResources"); var ProviderConfigs_1 = require("./authProviders/ProviderConfigs"); var FunctionsResources_1 = require("./functions/FunctionsResources"); var RulesResources_1 = require("./services/rules/RulesResources"); var ServiceConfigs_1 = require("./services/ServiceConfigs"); var ServicesResources_1 = require("./services/ServicesResources"); var UserRegistrationsResources_1 = require("./userRegistrations/UserRegistrationsResources"); var UsersResources_1 = require("./users/UsersResources"); function applyMixins(derivedCtor, baseCtors) { baseCtors.forEach(function (baseCtor) { Object.getOwnPropertyNames(baseCtor.prototype).forEach(function (name) { derivedCtor.prototype[name] = baseCtor.prototype[name]; }); }); } var BasicResource = (function () { function BasicResource(adminAuth, url) { this.adminAuth = adminAuth; this.url = url; } return BasicResource; }()); exports.BasicResource = BasicResource; function checkEmpty(response) { if (response.body === undefined) { throw new mongodb_stitch_core_sdk_1.StitchServiceError("unexpected empty response", mongodb_stitch_core_sdk_1.StitchServiceErrorCode.Unknown); } } exports.checkEmpty = checkEmpty; var Listable = (function (_super) { __extends(Listable, _super); function Listable() { return _super !== null && _super.apply(this, arguments) || this; } Listable.prototype.list = function () { var _this = this; var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder.withMethod(mongodb_stitch_core_sdk_1.Method.GET).withPath(this.url); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function (response) { return bson_1.EJSON.parse(response.body).map(function (val) { return _this.codec.decode(val); }); }); }; return Listable; }(BasicResource)); exports.Listable = Listable; var Gettable = (function (_super) { __extends(Gettable, _super); function Gettable() { return _super !== null && _super.apply(this, arguments) || this; } Gettable.prototype.get = function () { var _this = this; var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder.withMethod(mongodb_stitch_core_sdk_1.Method.GET).withPath(this.url); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function (response) { return _this.codec.decode(bson_1.EJSON.parse(response.body)); }); }; return Gettable; }(BasicResource)); exports.Gettable = Gettable; var Removable = (function (_super) { __extends(Removable, _super); function Removable() { return _super !== null && _super.apply(this, arguments) || this; } Removable.prototype.remove = function () { var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder.withMethod(mongodb_stitch_core_sdk_1.Method.DELETE).withPath(this.url); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function () { return; }); }; return Removable; }(BasicResource)); exports.Removable = Removable; var Creatable = (function (_super) { __extends(Creatable, _super); function Creatable() { return _super !== null && _super.apply(this, arguments) || this; } Creatable.prototype.create = function (data) { var _this = this; var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder .withMethod(mongodb_stitch_core_sdk_1.Method.POST) .withPath(this.url) .withBody(bson_1.EJSON.stringify(this.creatorCodec.encode(data), { relaxed: false })); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function (response) { return _this.codec.decode(bson_1.EJSON.parse(response.body)); }); }; return Creatable; }(BasicResource)); exports.Creatable = Creatable; var Updatable = (function (_super) { __extends(Updatable, _super); function Updatable() { return _super !== null && _super.apply(this, arguments) || this; } Updatable.prototype.update = function (data) { var _this = this; var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder .withMethod(mongodb_stitch_core_sdk_1.Method.PUT) .withPath(this.url) .withBody(bson_1.EJSON.stringify(data, { relaxed: false })); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function (response) { return _this.updatableCodec.decode(bson_1.EJSON.parse(response.body)); }); }; return Updatable; }(BasicResource)); exports.Updatable = Updatable; var Enablable = (function (_super) { __extends(Enablable, _super); function Enablable() { return _super !== null && _super.apply(this, arguments) || this; } Enablable.prototype.enable = function () { var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder.withMethod(mongodb_stitch_core_sdk_1.Method.PUT).withPath(this.url + "/enable"); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function () { return; }); }; return Enablable; }(BasicResource)); exports.Enablable = Enablable; var Disablable = (function (_super) { __extends(Disablable, _super); function Disablable() { return _super !== null && _super.apply(this, arguments) || this; } Disablable.prototype.disable = function () { var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder.withMethod(mongodb_stitch_core_sdk_1.Method.PUT).withPath(this.url + "/disable"); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function () { return; }); }; return Disablable; }(BasicResource)); exports.Disablable = Disablable; var AuthProvider = (function (_super) { __extends(AuthProvider, _super); function AuthProvider() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new AuthProvidersResources_1.AuthProviderResponseCodec(); _this.updatableCodec = new AuthProvidersResources_1.AuthProviderResponseCodec(); return _this; } return AuthProvider; }(BasicResource)); exports.AuthProvider = AuthProvider; applyMixins(AuthProvider, [ Gettable, Updatable, Removable, Enablable, Disablable ]); var AuthProviders = (function (_super) { __extends(AuthProviders, _super); function AuthProviders() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new AuthProvidersResources_1.AuthProviderResponseCodec(); _this.creatorCodec = new ProviderConfigs_1.ProviderConfigCodec(); return _this; } AuthProviders.prototype.authProvider = function (providerId) { return new AuthProvider(this.adminAuth, this.url + "/" + providerId); }; return AuthProviders; }(BasicResource)); exports.AuthProviders = AuthProviders; applyMixins(AuthProviders, [Listable, Creatable]); var UserRegistrations = (function (_super) { __extends(UserRegistrations, _super); function UserRegistrations() { return _super !== null && _super.apply(this, arguments) || this; } UserRegistrations.prototype.sendConfirmation = function (email) { var reqBuilder = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder(); reqBuilder .withMethod(mongodb_stitch_core_sdk_1.Method.POST) .withPath(this.url + "/by_email/" + email + "/send_confirm"); return this.adminAuth .doAuthenticatedRequest(reqBuilder.build()) .then(function (response) { return new UserRegistrationsResources_1.ConfirmationEmailCodec().decode(JSON.parse(response.body)); }); }; return UserRegistrations; }(BasicResource)); exports.UserRegistrations = UserRegistrations; var User = (function (_super) { __extends(User, _super); function User() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new UsersResources_1.UserResponseCodec(); return _this; } return User; }(BasicResource)); exports.User = User; applyMixins(User, [Gettable, Removable]); var Users = (function (_super) { __extends(Users, _super); function Users() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new UsersResources_1.UserResponseCodec(); _this.creatorCodec = new UsersResources_1.UserCreatorCodec(); return _this; } Users.prototype.user = function (uid) { return new User(this.adminAuth, this.url + "/" + uid); }; return Users; }(BasicResource)); exports.Users = Users; applyMixins(Users, [Listable, Creatable]); var Function = (function (_super) { __extends(Function, _super); function Function() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new FunctionsResources_1.FunctionResponseCodec(); _this.updatableCodec = new FunctionsResources_1.FunctionCreatorCodec(); return _this; } return Function; }(BasicResource)); exports.Function = Function; applyMixins(Function, [Gettable, Updatable, Removable]); var Functions = (function (_super) { __extends(Functions, _super); function Functions() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new FunctionsResources_1.FunctionResponseCodec(); _this.creatorCodec = new FunctionsResources_1.FunctionCreatorCodec(); return _this; } Functions.prototype.function = function (fid) { return new Function(this.adminAuth, this.url + "/" + fid); }; return Functions; }(BasicResource)); exports.Functions = Functions; applyMixins(Functions, [Creatable, Listable]); var Rule = (function (_super) { __extends(Rule, _super); function Rule() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new RulesResources_1.RuleResponseCodec(); return _this; } return Rule; }(BasicResource)); exports.Rule = Rule; applyMixins(Rule, [Gettable, Removable]); var Rules = (function (_super) { __extends(Rules, _super); function Rules() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.creatorCodec = new RulesResources_1.RuleCreatorCodec(); _this.codec = new RulesResources_1.RuleResponseCodec(); return _this; } return Rules; }(BasicResource)); exports.Rules = Rules; applyMixins(Rules, [Creatable, Listable]); var Service = (function (_super) { __extends(Service, _super); function Service() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new ServicesResources_1.ServiceResponseCodec(); _this.rules = new Rules(_this.adminAuth, _this.url + "/rules"); return _this; } return Service; }(BasicResource)); exports.Service = Service; applyMixins(Service, [Gettable, Removable]); var Services = (function (_super) { __extends(Services, _super); function Services() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.creatorCodec = new ServiceConfigs_1.ServiceConfigCodec(); _this.codec = new ServicesResources_1.ServiceResponseCodec(); return _this; } Services.prototype.service = function (id) { return new Service(this.adminAuth, this.url + "/" + id); }; return Services; }(BasicResource)); exports.Services = Services; applyMixins(Services, [Listable, Creatable]); var App = (function (_super) { __extends(App, _super); function App() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new AppsResources_1.AppResponseCodec(); _this.authProviders = new AuthProviders(_this.adminAuth, _this.url + "/auth_providers"); _this.functions = new Functions(_this.adminAuth, _this.url + "/functions"); _this.services = new Services(_this.adminAuth, _this.url + "/services"); _this.users = new Users(_this.adminAuth, _this.url + "/users"); _this.userRegistrations = new UserRegistrations(_this.adminAuth, _this.url + "/user_registrations"); return _this; } return App; }(BasicResource)); exports.App = App; applyMixins(App, [Gettable, Removable]); var Apps = (function (_super) { __extends(Apps, _super); function Apps() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.codec = new AppsResources_1.AppResponseCodec(); return _this; } Apps.prototype.create = function (name, defaults) { if (defaults === void 0) { defaults = false; } var encodedApp = { name: name }; var req = new mongodb_stitch_core_sdk_1.StitchAuthRequest.Builder() .withMethod(mongodb_stitch_core_sdk_1.Method.POST) .withPath(this.url + "?defaults=" + defaults) .withBody(JSON.stringify(encodedApp)) .build(); return this.adminAuth.doAuthenticatedRequest(req).then(function (response) { checkEmpty(response); return new AppsResources_1.AppResponseCodec().decode(bson_1.EJSON.parse(response.body)); }); }; Apps.prototype.app = function (appId) { return new App(this.adminAuth, this.url + "/" + appId); }; return Apps; }(BasicResource)); exports.Apps = Apps; applyMixins(Apps, [Listable]); }); //# sourceMappingURL=Resources.js.map