neotoma/sync-server

View on GitHub
app/models/userStorageAuth.js

Summary

Maintainability
B
4 hrs
Test Coverage
/**
 * UserStorageAuth model
 * @module
 */

var modelFactory = require('app/factories/model'),
  queryConditions = require('./queryConditions');

/**
 * Represents OAuth 2.0 credentials for user authentication to storage
 * @class UserStorageAuth
 * @property {module:models/storage~Storage} storage - Storage at which to authenticate user
 * @property {string} [storageToken] - OAuth 2.0 access token for storage
 * @property {string} [storageUser] - User identifier at storage
 * @property {module:models/user~User} [user] - User to authenticate at storage
 */
module.exports = modelFactory.new('UserStorageAuth', {
  storage: { ref: 'Storage', required: true },
  storageToken: String,
  storageUser: String,
  user: { ref: 'User' }
}, {
  jsonapi: {
    get: {
      allowed: 'user',
      queryConditions: queryConditions.userMatchesRequester
    },
    delete: {
      allowed: 'user',
      queryConditions: queryConditions.userMatchesRequester
    },
    filteredProperties: ['storageToken', 'storageUser']
  }
});