// Add/update a subscriber api.put('/v1/subscribe', handler((req, res) => { // Throw error if we don't have an email if (!_.get(req, 'body.email', false)) { throw utils.makeError('Malformed email!', 422); } // Notify on slack slack.newSubscriber({email: _.toLower(req.body.email), groups: req.body.groups}); // Get and reconcile interests return addSubscriber( config.LANDO_API_MAILCHIMP_KEY, req.body.email, req.body.groups, req.body.defaults ); }));
mailchimp.get('lists/613837077f/interest-categories').then(results => { return Promise.all(_(_.get(results, 'categories', [])) .map(category => category.id) .map(id => mailchimp.get(`lists/613837077f/interest-categories/${id}/interests`)) .value()) .then(categories => _(categories) .map(category => category.interests) .flatten() .map(interest => ({name: interest.name, id: interest.id})) ) .then(interests => _(interests) .filter(interest => _.includes(groups, interest.name)) .map(interest => ([interest.id, true])) .fromPairs() .value() ); }) // Update the contact .then(interests => { const lowerEmail = _.toLower(email); return mailchimp.put(`/lists/613837077f/members/${utils.md5(lowerEmail)}`, { email_address: lowerEmail, interests: _.merge({}, defaults, interests), status: 'subscribed', }); })
constructor() { this._envs = _.reduce(process.env, function(map, val, key) { let name = _.replace(key, '_', '.'); name = _.toLower(name); return map.set(name, val); }, new Map()); }
_.forEach(apis, api => { const modelsPath = path.join(apiPath, api, 'models'); let models; try { models = fs.readdirSync(modelsPath); const modelIndex = _.indexOf(_.map(models, model => _.toLower(model)), searchFileName); if (modelIndex !== -1) searchFilePath = `${modelsPath}/${models[modelIndex]}`; } catch (e) { errors.push({ id: 'request.error.folder.read', params: { folderPath: modelsPath } }); } });
/** * Search challenge types * @param {Object} criteria the search criteria * @returns {Object} the search result */ async function searchChallengeTracks (criteria) { // TODO - move this to ES let records = await helper.scan('ChallengeTrack') const page = criteria.page || 1 const perPage = criteria.perPage || 50 if (criteria.name) records = _.filter(records, e => helper.partialMatch(criteria.name, e.name)) if (criteria.description) records = _.filter(records, e => helper.partialMatch(criteria.description, e.description)) if (criteria.track) records = _.filter(records, e => _.toLower(criteria.track) === _.toLower(e.track)) if (criteria.abbreviation) records = _.filter(records, e => helper.partialMatch(criteria.abbreviation, e.abbreviation)) if (!_.isUndefined(criteria.isActive)) records = _.filter(records, e => (e.isActive === (criteria.isActive === 'true'))) // if (criteria.legacyId) records = _.filter(records, e => (e.legacyId === criteria.legacyId)) const total = records.length const result = records.slice((page - 1) * perPage, page * perPage) return { total, page, perPage, result } }
/** * Test whether the given value is partially match the filter. * @param {String} filter the filter * @param {String} value the value to test * @returns {Boolean} the match result */ function partialMatch (filter, value) { if (filter) { if (value) { const filtered = xss(filter) return _.toLower(value).includes(_.toLower(filtered)) } else { return false } } else { return true } }
var line_lower = _.toLower ( line );
format = _.toLower( format ); format = ( format === IMAGE_FORMATS.JPG ) ? IMAGE_FORMATS.JPEG : format;
email: _.trim(_.toLower(_.get(user, 'email', ''))), password: _.get(user, 'password'), created: new Date(),
// Add/update a subscriber api.put('/v1/subscribe', handler((req, res) => { // Throw error if we don't have an email if (!_.get(req, 'body.email', false)) { throw utils.makeError('Malformed email!', 422); } // Notify on slack slack.newSubscriber({email: _.toLower(req.body.email), groups: req.body.groups}); // Get and reconcile interests return addSubscriber( config.LANDO_API_MAILCHIMP_KEY, req.body.email, req.body.groups, req.body.defaults ); }));
mailchimp.get('lists/613837077f/interest-categories').then(results => { return Promise.all(_(_.get(results, 'categories', [])) .map(category => category.id) .map(id => mailchimp.get(`lists/613837077f/interest-categories/${id}/interests`)) .value()) .then(categories => _(categories) .map(category => category.interests) .flatten() .map(interest => ({name: interest.name, id: interest.id})) ) .then(interests => _(interests) .filter(interest => _.includes(groups, interest.name)) .map(interest => ([interest.id, true])) .fromPairs() .value() ); }) // Update the contact .then(interests => { const lowerEmail = _.toLower(email); return mailchimp.put(`/lists/613837077f/members/${utils.md5(lowerEmail)}`, { email_address: lowerEmail, interests: _.merge({}, defaults, interests), status: 'subscribed', }); })