Home Reference Source Repository

lib/UserProvider.js

'use strict';

import {LoadUserException} from './Exception/LoadUserException';

/**
 * Loads user from db
 */
export class UserProvider {
  /**
   * @param {String} retrieveUserResource
   * @param {Object} deepResourceService
   */
  constructor(retrieveUserResource, deepResourceService) {
    this._retrieveUserResource = retrieveUserResource;
    this._deepResource = deepResourceService;
  }

  /**
   * @param {String} id
   * @param {Function} callback
   * @returns {*}
   */
  loadUserByIdentityId(id, callback) {
    let retrieveUserResource = this._deepResource.get(this._retrieveUserResource);

    retrieveUserResource.request({Id: id}).send(function(response) {
      if (response.error) {
        throw new LoadUserException(id, response.error);
      }

      return callback(JSON.parse(response.data.Payload));
    });
  }
}