mongodb-stitch
Version:
[](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
382 lines • 17 kB
JavaScript
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