OnboardingDataCollectionManager.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const {
  2. OnboardingDataCollection,
  3. } = require('../../models/OnboardingDataCollection')
  4. const OError = require('@overleaf/o-error')
  5. async function getOnboardingDataCollection(userId) {
  6. try {
  7. return await OnboardingDataCollection.findOne({ _id: userId }).exec()
  8. } catch (error) {
  9. throw OError.tag(error, 'Failed to get OnboardingDataCollection')
  10. }
  11. }
  12. async function upsertOnboardingDataCollection({
  13. userId,
  14. firstName,
  15. lastName,
  16. usedLatex,
  17. primaryOccupation,
  18. companyDivisionDepartment,
  19. companyJobTitle,
  20. governmentJobTitle,
  21. institutionName,
  22. otherJobTitle,
  23. nonprofitDivisionDepartment,
  24. nonprofitJobTitle,
  25. role,
  26. subjectArea,
  27. updatedAt,
  28. }) {
  29. const odc = await OnboardingDataCollection.findOneAndUpdate(
  30. { _id: userId },
  31. {
  32. firstName,
  33. lastName,
  34. usedLatex,
  35. primaryOccupation,
  36. companyDivisionDepartment,
  37. companyJobTitle,
  38. governmentJobTitle,
  39. institutionName,
  40. otherJobTitle,
  41. nonprofitDivisionDepartment,
  42. nonprofitJobTitle,
  43. role,
  44. subjectArea,
  45. updatedAt,
  46. },
  47. { upsert: true }
  48. )
  49. return odc
  50. }
  51. function deleteOnboardingDataCollection(id) {
  52. return OnboardingDataCollection.deleteOne({ _id: id })
  53. }
  54. module.exports = {
  55. getOnboardingDataCollection,
  56. upsertOnboardingDataCollection,
  57. deleteOnboardingDataCollection,
  58. }