import stampit from 'stampit'; import {Meta, Model} from './base'; import {BaseQuerySet, Create, BulkCreate, Get, GetOrCreate, List, SendToDevice, SendToDevices} from '../querySet'; const GCMMessageQuerySet = stampit().compose( BaseQuerySet, Create, BulkCreate, Get, List, GetOrCreate, SendToDevice, SendToDevices ); const GCMMessageMeta = Meta({ name: 'gcmmessage', pluralName: 'gcmmessages', endpoints: { 'detail': { 'methods': ['delete', 'get'], 'path': '/v1.1/instances/{instanceName}/push_notifications/gcm/messages/{id}/' }, 'list': { 'methods': ['get', 'post'], 'path': '/v1.1/instances/{instanceName}/push_notifications/gcm/messages/' }, 'deviceMessage': { 'methods': ['post'], 'path': '/v1.1/instances/{instanceName}/push_notifications/gcm/devices/{registration_id}/send_message/' } } }); const GCMMessageConstraints = { instanceName: { presence: true, length: { minimum: 5 } }, content: { presence: true, object: true }, 'content.registration_ids': { presence: true, array: true }, 'content.environment': { presence: true, inclusion: ['development', 'production'] } }; /** * OO wrapper around instance GCM messages {@link # endpoint}. * @constructor * @type {GCMMessage} * @property {Number} id * @property {String} [status = null] * @property {Object} [content = {}] * @property {Object} [result = {}] * @property {String} [links = {}] * @property {Date} [created_at = null] * @property {Date} [updated_at = null] */ const GCMMessage = stampit() .compose(Model) .setMeta(GCMMessageMeta) .setQuerySet(GCMMessageQuerySet) .setConstraints(GCMMessageConstraints); export default GCMMessage;