diff options
| author | dtluna <dtluna@openmailbox.org> | 2016-11-25 21:02:53 -0500 |
|---|---|---|
| committer | dtluna <dtluna@openmailbox.org> | 2016-11-25 21:02:53 -0500 |
| commit | cb940a8742307ee069e3da567058d098f59990b6 (patch) | |
| tree | 8a4c3e6f8c52736dd3180f6017280fcbc2376ebb /src/components/conversation/conversation.js | |
| parent | 01edb7dbe498b434e258451af94d1bca287d2e40 (diff) | |
| parent | 1be1d7563c94fa961c1cc0cef03e7e4e69df178a (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.js | 48 |
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 |
