SplitTestController.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const SplitTestManager = require('./SplitTestManager')
  2. async function getSplitTests(req, res, next) {
  3. try {
  4. const splitTests = await SplitTestManager.getSplitTests()
  5. res.send(splitTests)
  6. } catch (error) {
  7. res.status(500).json({
  8. error: `Error while fetching split tests list: ${error.message}`,
  9. })
  10. }
  11. }
  12. async function createSplitTest(req, res, next) {
  13. const { name, configuration } = req.body
  14. try {
  15. const splitTest = await SplitTestManager.createSplitTest(
  16. name,
  17. configuration
  18. )
  19. res.send(splitTest)
  20. } catch (error) {
  21. res
  22. .status(500)
  23. .json({ error: `Error while creating split test: ${error.message}` })
  24. }
  25. }
  26. async function updateSplitTest(req, res, next) {
  27. const { name, configuration } = req.body
  28. try {
  29. const splitTest = await SplitTestManager.updateSplitTest(
  30. name,
  31. configuration
  32. )
  33. res.send(splitTest)
  34. } catch (error) {
  35. res
  36. .status(500)
  37. .json({ error: `Error while updating split test: ${error.message}` })
  38. }
  39. }
  40. async function switchToNextPhase(req, res, next) {
  41. const { name } = req.body
  42. try {
  43. const splitTest = await SplitTestManager.switchToNextPhase(name)
  44. res.send(splitTest)
  45. } catch (error) {
  46. res.status(500).json({
  47. error: `Error while switching split test to next phase: ${error.message}`,
  48. })
  49. }
  50. }
  51. async function revertToPreviousVersion(req, res, next) {
  52. const { name, versionNumber } = req.body
  53. try {
  54. const splitTest = await SplitTestManager.revertToPreviousVersion(
  55. name,
  56. versionNumber
  57. )
  58. res.send(splitTest)
  59. } catch (error) {
  60. res.status(500).json({
  61. error: `Error while reverting to previous version: ${error.message}`,
  62. })
  63. }
  64. }
  65. module.exports = {
  66. getSplitTests,
  67. createSplitTest,
  68. updateSplitTest,
  69. switchToNextPhase,
  70. revertToPreviousVersion,
  71. }