You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import Joi from 'joi'
  2. import { Connector } from './db'
  3. import { SurveyFactory } from './survey'
  4. import { possible } from './lang'
  5. import { pidMixin, cardMixin } from './mixins'
  6. import { possibleZipcodes } from '../../../backend/db/data-generator/config.json'
  7. const api = new Connector('kittens')
  8. const validatorMapping = {
  9. 'input-string': Joi.string(),
  10. 'tag-cloud': Joi.string(),
  11. 'checklist': Joi.string(),
  12. 'input-slide': Joi.string(),
  13. }
  14. const makeKebob = input => {
  15. return input.toLowerCase().split(' ').join('-')
  16. }
  17. const surveyFactory = new SurveyFactory(possible['usa'])
  18. const mixins = { pidMixin, cardMixin }
  19. const randomNumber = max => {
  20. return Math.floor(Math.random() * max) < 1
  21. ? 1
  22. : Math.floor(Math.random() * max)
  23. }
  24. const randomValFrom = arr => arr[randomNumber(arr.length)]
  25. const randomEmail = (length = 5) => {
  26. let chars =
  27. 'abcdefghijklmnopqrstuvwxyz-_abcdefghijklmnopqrstuvwxyz0123456789'
  28. let str = ''
  29. for (let i = 0; i < length + randomNumber(9); i++) {
  30. str += chars.charAt(Math.floor(Math.random() * chars.length))
  31. }
  32. const suffixs = [
  33. '@gmail.com',
  34. '@aol.com',
  35. '@yahoo.com',
  36. '@apple.com',
  37. '@hotmail.com',
  38. '@rocket-mail.com',
  39. '@mail.com',
  40. ]
  41. return str + randomValFrom(suffixs)
  42. }
  43. const randomName = (length = 4) => {
  44. let chars = 'aeiouaeiouabcdefghijklmnoprstuvwyabcdefghijklmnopqrstuvwxyz'
  45. let str = ''
  46. for (let i = 0; i < length + randomNumber(9); i++) {
  47. str += chars.charAt(Math.floor(Math.random() * chars.length))
  48. }
  49. return str
  50. }
  51. const randomMedia = () => {
  52. const stockimg = [
  53. 'https://i.imgur.com/a4wirDS.png',
  54. 'https://i.imgur.com/F6GxGXG.jpeg',
  55. 'https://i.imgur.com/ekrkdNt.jpeg',
  56. 'https://i.imgur.com/VtMTfDg.jpeg',
  57. 'https://i.imgur.com/9Fwouqm.jpeg',
  58. 'https://i.imgur.com/rOjRCgo.jpeg',
  59. 'https://i.imgur.com/FwSdQww.jpeg',
  60. 'https://i.imgur.com/JjZyzXL.jpeg',
  61. 'https://i.imgur.com/1DsSQ1s.jpeg',
  62. ]
  63. return randomValFrom(stockimg)
  64. }
  65. const randomSurveyResponses = count => {
  66. const surveyResponses = [
  67. { id: null, "idOrPrompt": "email", "val": `${randomEmail()}` },
  68. { id: null, "idOrPrompt": "name", "val": `john test-${count}` },
  69. { id: 99, "idOrPrompt": 15, "val": randomValFrom(possible.usa.pronouns) },
  70. { id: null, "idOrPrompt": "seeking", "val": Math.random() > 0.2 ? possible.usa.seeking[0] : possible.usa.seeking[1] },
  71. { id: 99, "idOrPrompt": 13, "val": randomValFrom(possible.usa.urgency) },
  72. { id: null, "idOrPrompt": "experience", "val": randomValFrom(possible.usa.experience) },
  73. { id: 99, "idOrPrompt": 14, "val": "swe" },
  74. { id: 99, "idOrPrompt": 10, "val": randomValFrom(possible.usa.duration) },
  75. { id: 99, "idOrPrompt": 9, "val": randomValFrom(possible.usa.language) },
  76. { id: 99, "idOrPrompt": 11, "val": randomValFrom(possible.usa.presence) },
  77. { id: 99, "idOrPrompt": 7, "val": `${randomValFrom(possibleZipcodes)}` },
  78. { id: 99, "idOrPrompt": 16, "val": `${randomNumber(55)}` },
  79. { id: 99, "idOrPrompt": 12, "val": "this is a test of the survey signup" },
  80. { id: 99, "idOrPrompt": 8, "val": randomMedia() },
  81. { id: 99, "idOrPrompt": 1, "val": `${randomNumber(3) - randomNumber(3)}` },
  82. { id: 99, "idOrPrompt": 2, "val": `${randomNumber(3) - randomNumber(3)}` },
  83. { id: 99, "idOrPrompt": 3, "val": `${randomNumber(3) - randomNumber(3)}` },
  84. { id: 99, "idOrPrompt": 4, "val": `${randomNumber(3) - randomNumber(3)}` },
  85. { id: 99, "idOrPrompt": 5, "val": `${randomNumber(3) - randomNumber(3)}` },
  86. { id: 99, "idOrPrompt": 6, "val": `${randomNumber(3) - randomNumber(3)}` }
  87. ]
  88. return surveyResponses
  89. }
  90. export {
  91. api,
  92. validatorMapping,
  93. surveyFactory,
  94. makeKebob,
  95. mixins,
  96. randomSurveyResponses,
  97. randomNumber,
  98. randomValFrom,
  99. randomMedia,
  100. randomName,
  101. randomEmail
  102. }