Manual Reference Source Test

src/helpers/user/Invitation.js

import Helper from '../Helper';
import InvitationModel from '../../models/user/Invitation';
import { aggregate } from '../../utilities/ClassUtility';

/**
 * Helper class representing an eDiary Entry Group.
 *
 * @extends {InvitationModel}
 * @extends {Helper}
 */
class Invitation extends aggregate(InvitationModel, Helper) {
  /**
   * Constructor for helper class representing an eDiary Entry Group
   *
   * @param {Object} json - json api response from server
   */
  constructor(json = {}) {
    super(json);
    this._relationships = {};
    this.deserializeRelationshipStubs(json);
    this.syncRelationships(json);
  }

  /** @type {String}  - The type */
  static get type() {
    return 'invitations';
  }

  /** @type {Language} */
  get language() {
    return this._relationships.language;
  }

  /** @type {Language} */
  set language(language) {
    /** @type {Language} */
    this._relationships.language = language;
  }

  /** @type {User} */
  get followed() {
    return this._relationships.followed;
  }

  /** @type {User} */
  set followed(followed) {
    /** @type {User} */
    this._relationships.followed = followed;
  }

  /** @type {Role} */
  get role() {
    return this._relationships.user_role;
  }

  /** @type {Role} */
  set role(role) {
    /** @type {Role} */
    this._relationships.user_role = role;
  }
}

export default Invitation;