| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /* eslint-disable
- handle-callback-err,
- max-len,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let UserMembershipViewModel
- const { ObjectId } = require('mongodb')
- const { ObjectId: MongooseObjectId } = require('mongoose').mongo
- const UserGetter = require('../User/UserGetter')
- module.exports = UserMembershipViewModel = {
- build(userOrEmail) {
- if (userOrEmail._id) {
- return buildUserViewModel(userOrEmail)
- } else {
- return buildUserViewModelWithEmail(userOrEmail)
- }
- },
- buildAsync(userOrIdOrEmail, callback) {
- if (callback == null) {
- callback = function(error, viewModel) {}
- }
- if (
- !(
- userOrIdOrEmail instanceof ObjectId ||
- userOrIdOrEmail instanceof MongooseObjectId
- )
- ) {
- // userOrIdOrEmail is a user or an email and can be parsed by #build
- return callback(null, UserMembershipViewModel.build(userOrIdOrEmail))
- }
- const userId = userOrIdOrEmail
- const projection = {
- email: 1,
- first_name: 1,
- last_name: 1,
- lastLoggedIn: 1
- }
- return UserGetter.getUser(userId, projection, function(error, user) {
- if (error != null || user == null) {
- return callback(null, buildUserViewModelWithId(userId.toString()))
- }
- return callback(null, buildUserViewModel(user))
- })
- }
- }
- var buildUserViewModel = function(user, isInvite) {
- if (isInvite == null) {
- isInvite = false
- }
- return {
- _id: user._id || null,
- email: user.email || null,
- first_name: user.first_name || null,
- last_name: user.last_name || null,
- last_logged_in_at: user.lastLoggedIn || null,
- invite: isInvite
- }
- }
- var buildUserViewModelWithEmail = email => buildUserViewModel({ email }, true)
- var buildUserViewModelWithId = id => buildUserViewModel({ _id: id }, false)
|