diff options
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); |