InstitutionsGetter.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. let InstitutionsGetter
  2. const UserGetter = require('../User/UserGetter')
  3. const UserMembershipsHandler = require('../UserMembership/UserMembershipsHandler')
  4. const UserMembershipEntityConfigs = require('../UserMembership/UserMembershipEntityConfigs')
  5. module.exports = InstitutionsGetter = {
  6. getConfirmedAffiliations(userId, callback) {
  7. UserGetter.getUserFullEmails(userId, function (error, emailsData) {
  8. if (error) {
  9. return callback(error)
  10. }
  11. const confirmedAffiliations = emailsData
  12. .filter(
  13. emailData =>
  14. emailData.confirmedAt &&
  15. emailData.affiliation &&
  16. emailData.affiliation.institution &&
  17. emailData.affiliation.institution.confirmed
  18. )
  19. .map(emailData => emailData.affiliation)
  20. callback(null, confirmedAffiliations)
  21. })
  22. },
  23. getConfirmedInstitutions(userId, callback) {
  24. InstitutionsGetter.getConfirmedAffiliations(
  25. userId,
  26. (error, confirmedAffiliations) => {
  27. if (error) {
  28. return callback(error)
  29. }
  30. const confirmedInstitutions = confirmedAffiliations.map(
  31. confirmedAffiliation =>
  32. confirmedAffiliation ? confirmedAffiliation.institution : undefined
  33. )
  34. callback(null, confirmedInstitutions)
  35. }
  36. )
  37. },
  38. getManagedInstitutions(userId, callback) {
  39. UserMembershipsHandler.getEntitiesByUser(
  40. UserMembershipEntityConfigs.institution,
  41. userId,
  42. callback
  43. )
  44. }
  45. }