aboutsummaryrefslogtreecommitdiff
path: root/src/components/conversation/conversation.js
diff options
context:
space:
mode:
authordtluna <dtluna@openmailbox.org>2016-11-25 21:02:53 -0500
committerdtluna <dtluna@openmailbox.org>2016-11-25 21:02:53 -0500
commitcb940a8742307ee069e3da567058d098f59990b6 (patch)
tree8a4c3e6f8c52736dd3180f6017280fcbc2376ebb /src/components/conversation/conversation.js
parent01edb7dbe498b434e258451af94d1bca287d2e40 (diff)
parent1be1d7563c94fa961c1cc0cef03e7e4e69df178a (diff)
Merge branch 'develop' into 'feature/attachment-form-improvements'
# Conflicts: # src/components/attachment/attachment.js
Diffstat (limited to 'src/components/conversation/conversation.js')
-rw-r--r--src/components/conversation/conversation.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js
new file mode 100644
index 00000000..ea26d958
--- /dev/null
+++ b/src/components/conversation/conversation.js
@@ -0,0 +1,48 @@
+import { find, filter, sortBy, toInteger } from 'lodash'
+import Status from '../status/status.vue'
+import apiService from '../../services/api/api.service.js'
+
+const conversation = {
+ computed: {
+ status () {
+ const id = toInteger(this.$route.params.id)
+ const statuses = this.$store.state.statuses.allStatuses
+ const status = find(statuses, {id})
+
+ return status
+ },
+ conversation () {
+ if (!this.status) {
+ return false
+ }
+
+ const conversationId = this.status.statusnet_conversation_id
+ const statuses = this.$store.state.statuses.allStatuses
+ const conversation = filter(statuses, { statusnet_conversation_id: conversationId })
+ return sortBy(conversation, 'id')
+ }
+ },
+ components: {
+ Status
+ },
+ created () {
+ this.fetchConversation()
+ },
+ methods: {
+ fetchConversation () {
+ if (this.status) {
+ const conversationId = this.status.statusnet_conversation_id
+ apiService.fetchConversation({id: conversationId})
+ .then((statuses) => this.$store.dispatch('addNewStatuses', { statuses }))
+ .then(() => this.$store.commit('updateTimestamps'))
+ } else {
+ const id = this.$route.params.id
+ apiService.fetchStatus({id})
+ .then((status) => this.$store.dispatch('addNewStatuses', { statuses: [status] }))
+ .then(() => this.fetchConversation())
+ }
+ }
+ }
+}
+
+export default conversation