comments.js.es6 1019 Bytes
Newer Older
Phil Hughes's avatar
Phil Hughes committed
1 2 3 4
((w) => {
  w.CommentsStore = {
    state: {},
    get: function (discussionId, noteId) {
5
      return this.state[discussionId].getNote(noteId);
Phil Hughes's avatar
Phil Hughes committed
6
    },
7
    create: function (discussionId, noteId, canResolve, resolved, resolved_by) {
8
      let discussion = this.state[discussionId];
Phil Hughes's avatar
Phil Hughes committed
9
      if (!this.state[discussionId]) {
10 11
        discussion = new DiscussionModel(discussionId);
        Vue.set(this.state, discussionId, discussion);
Phil Hughes's avatar
Phil Hughes committed
12 13
      }

14
      discussion.createNote(noteId, canResolve, resolved, resolved_by);
Phil Hughes's avatar
Phil Hughes committed
15
    },
16
    update: function (discussionId, noteId, resolved, resolved_by) {
17 18 19
      const discussion = this.state[discussionId];
      const note = discussion.getNote(noteId);
      note.resolved = resolved;
20
      note.resolved_by = resolved_by;
Phil Hughes's avatar
Phil Hughes committed
21 22
    },
    delete: function (discussionId, noteId) {
23 24
      const discussion = this.state[discussionId];
      discussion.deleteNote(noteId);
Phil Hughes's avatar
Phil Hughes committed
25

26
      if (discussion.notesCount() === 0) {
Phil Hughes's avatar
Phil Hughes committed
27 28
        Vue.delete(this.state, discussionId);
      }
29
    }
Phil Hughes's avatar
Phil Hughes committed
30
  };
31
})(window);