UNPKG

@codetanzania/emis-stakeholder

Version:

A representation of an entity (e.g municipal, individual, agency, organization etc) consisting of contact information (e.g. name, e-mail addresses, phone numbers) and other descriptive information of interest in emergency(or disaster) management.

47 lines (43 loc) 1.42 kB
import { isEmpty } from 'lodash'; import { firstValue, mergeObjects } from '@lykmapipo/common'; import { getString } from '@lykmapipo/env'; import irinaUtils from 'irina/lib/utils'; /** * @name ensurePassword * @description Set plain password on party details * @param {object} party valid party details * @returns {object} party with plain password * @author lally elias <lallyelias87@gmail.com> * @license MIT * @since 3.0.0 * @version 1.0.0 * @public */ export const ensurePassword = (party = {}) => { const defaultPassword = getString('DEFAULT_PASSWORD', '123456789'); const password = firstValue(defaultPassword, party.password); const partyWithPassword = mergeObjects(party, { password }); return partyWithPassword; }; /** * @name encryptPassword * @description Encrypt party plain password * @param {object} party valid party details * @param {Function} done callback to invoke on success or failure * @returns {object} party with hashed password * @author lally elias <lallyelias87@gmail.com> * @license MIT * @since 3.0.0 * @version 1.0.0 * @public */ export const encryptPassword = (party = {}, done) => { const localParty = mergeObjects(party); if (!isEmpty(localParty.password)) { return irinaUtils.hash(localParty.password, 10, (error, hash) => { localParty.password = hash; return done(error, localParty); }); } return done(null, localParty); };