Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. editIssue: flow(function * () {
  2. self.status = 'loading'
  3. const { api: apiService } = getEnv<Environment>(self)
  4. const { issue, ident } = getSnapshot(self)
  5. const updatedIssue: EditIssueSnapshot = {
  6. ...issue,
  7. responsible: self.root.userStore.username,
  8. }
  9. // if (self.root.photosStore.imageIsSelected) {
  10. // const images = self.root.photosStore.getImages
  11. // images.forEach(image => {
  12. // const name = image.fileName
  13. // if (!updatedIssue.description) {
  14. // updatedIssue.description = ''
  15. // }
  16. // updatedIssue.description += `<p><img alt="description image" title="${name}" /></p>`
  17. // })
  18. // }
  19. const result: EditOpenIssueResult = yield apiService.editOpenIssue(updatedIssue, ident)
  20.  
  21. if (result.kind === 'ok') {
  22. const { issueStore, issuesStore, navigationStore } = getRoot(self)
  23. const { details, displayedIssueId } = self.detailsIssue
  24. const detailsIssue = {
  25. ...details,
  26. ...updatedIssue,
  27. ident: Number(displayedIssueId),
  28. }
  29. self.status = 'done'
  30. if (self.root.photosStore.imageIsSelected) {
  31. const images = self.root.photosStore.getImages
  32. const promises = images.reduce((acc, image) => {
  33. return [...acc, apiService.addOpenIssueAttachment(displayedIssueId, image)]
  34. })
  35. const res = yield Promise.all(promises)
  36. let newDescription = detailsIssue.description
  37. res.forEach((result, ind) => {
  38. if (result.kind !== 'ok') alert('At least one of the images was not uploaded')
  39. else {
  40. const name = images[ind].fileName
  41. const attachmentId = result.result[0].attachment_id
  42. newDescription += `<p><img src="aih" alt=\"aih#${name}\"/ title="${attachmentId}"></p>`
  43. }
  44. })
  45. updatedIssue.description = newDescription
  46. const updateIssueRes = yield apiService.updateOpenIssue(
  47. updatedIssue,
  48. displayedIssueId,
  49. )
  50. self.root.photosStore.clean()
  51. }
  52. self.clearStore()
  53. issueStore.loadIssue(detailsIssue)
  54. issuesStore.updateIssue(detailsIssue)
  55. navigationStore.goBack()
  56. } else {
  57. if (result.kind === 'rejected' && Array.isArray(result.error)) {
  58. const error = result.error.reduce((acc, item) => `${acc} ${item.message}`, '')
  59. Alert.alert('Error', error)
  60. }
  61. self.status = 'error'
  62. }
  63. }),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement