diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2017-08-29 17:54:57 +0200 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2017-11-03 04:20:25 +0100 |
commit | b624a66e923407e98a25eda6b050370757ed52aa (patch) | |
tree | f727fa5739af5d87b6bf517047f5880d98995330 /js/models/chatmessagecollection.js | |
parent | 7d8b5f0c89d668d6d40a24cd3e95c7e25ec9c41d (diff) |
Add basic Backbone models for chat messages
As chat messages can only be sent and received, but not updated or
deleted, a limited set of features are available only in the models:
sending a message is done by saving a ChatMessage, while receiving the
chat messages from a room is done by fetching a ChatMessageCollection.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'js/models/chatmessagecollection.js')
-rw-r--r-- | js/models/chatmessagecollection.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/js/models/chatmessagecollection.js b/js/models/chatmessagecollection.js new file mode 100644 index 000000000..53a2f348e --- /dev/null +++ b/js/models/chatmessagecollection.js @@ -0,0 +1,63 @@ +/* global Backbone, OC, OCA */ + +/** + * + * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +(function(OCA, OC, Backbone) { + 'use strict'; + + OCA.SpreedMe = OCA.SpreedMe || {}; + OCA.SpreedMe.Models = OCA.SpreedMe.Models || {}; + + /** + * Collection for chat messages. + * + * The ChatMessageCollection gives read access to all the chat messages from + * a specific chat room. The room token must be provided in the constructor + * options (as "token"). + * + * "read" is the only synchronization method allowed; chat messages can not + * be edited nor deleted, and to send a new message a standalone ChatMessage + * should be used instead. + */ + var ChatMessageCollection = Backbone.Collection.extend({ + + model: OCA.SpreedMe.Models.ChatMessage, + + initialize: function(models, options) { + if (options.token === undefined) { + throw 'Missing parameter token'; + } + + this.token = options.token; + + this.url = OC.linkToOCS('apps/spreed/api/v1/chat', 2) + this.token; + }, + + parse: function(result) { + return result.ocs.data; + } + + }); + + OCA.SpreedMe.Models.ChatMessageCollection = ChatMessageCollection; + +})(OCA, OC, Backbone); |