BBPromise.try(function() {


    if(request.params.apiKey) {
      //using the API Key in the URL
      logger.info({
        apiKey: request.params.apiKey
      }, 'initiating bounce with apiKey');
      return Model.Application.findOneAsync({
        apiKey: request.params.apiKey
      });
    } else {
      logger.info({
        params: request.params
      }, 'initiating bounce with org-slug and app-slug');
      return Model.Organisation.findOneAsync({
        slug: request.params.orgSlug
      }).then(function (organisation) {
        if (!organisation) {
          throw new errors.Http404Error('invalid organisation slug');
        }
        return Model.Application.findOneAsync({
          slug: request.params.appSlug,
          organisation: organisation._id
        });
      });

    }


  }).then(function (application) {
Beispiel #2
0
 after(function () {
   return Promise.all([
     Organisation.removeAsync(),
     Application.removeAsync()
   ]).then(function () {
     return _mongoose.disconnectAsync();
   });
 });
 after(function () {
   return BBPromise.all([
     Model.Organisation.removeAsync({}),
     Model.Application.removeAsync({}),
     Model.ConnectorSetting.removeAsync({}),
     Model.BouncerToken.removeAsync({})
   ]);
 });
 .then((user) => {
   if (!user) {
     throw new errors.Http401Error({
       message: 'Incorrect username or password provided'
     });
   }
   // check if user is in organisation
   return Organisation.findOneAsync({
     slug: gitFolder,
     _id: {
       $in: user.organisations
     }
   });
 }).then((org) => {
  describe('GET /initiate/{apiKey}/{key}', function () {
    var organisation = new Model.Organisation({
      _id: 'orgid',
      name: 'test_org',
      slug: 'orgslug'
    });
    var application = new Model.Application({
      _id: 'appid',
      slug: 'appslug',
      organisation: 'orgid',
      apiKey: 'myApiKey'
    });
    var connectorSetting = new Model.ConnectorSetting({
      name: 'my connector',
      application: 'appid',
      environment: 'live',
      key: 'connector_key'
    });
    var _response;
    before(function (done) {
      return BBPromise.all([
        organisation.saveAsync(),
        application.saveAsync(),
        connectorSetting.saveAsync()
      ]).then(function () {
        server.getServer().inject({
          method: 'GET',
          url: '/initiate/myApiKey/connector_key'
        }, function (response) {
          _response = response;
          done();
        });
      });

    });
    after(function () {
      return BBPromise.all([
        Model.Organisation.removeAsync({}),
        Model.Application.removeAsync({}),
        Model.ConnectorSetting.removeAsync({}),
        Model.BouncerToken.removeAsync({})
      ]);
    });
    it('returns redirect', function () {
      expect(_response.headers.location)
        .to.match(/\/bounce\/[^\/]*/);
    });
  });
    before(function (done) {
      return BBPromise.all([
        organisation.saveAsync(),
        application.saveAsync(),
        connectorSetting.saveAsync()
      ]).then(function () {
        server.getServer().inject({
          method: 'GET',
          url: '/initiate/myApiKey/connector_key'
        }, function (response) {
          _response = response;
          done();
        });
      });

    });