blob: 6f5d09de7ee2e1f8b2da66681e180235604549f1 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('print_preview', function() {
'use strict';
class Invitation {
/**
* Printer sharing invitation data object.
* @param {string} sender Text identifying invitation sender.
* @param {string} receiver Text identifying invitation receiver. Empty in
* case of a personal invitation. Identifies a group or domain in case
* of an invitation received by a group manager.
* @param {!print_preview.Destination} destination Shared destination.
* @param {!Object} aclEntry JSON representation of the ACL entry this
* invitation was sent to.
* @param {string} account User account this invitation is sent for.
*/
constructor(sender, receiver, destination, aclEntry, account) {
/**
* Text identifying invitation sender.
* @private {string}
*/
this.sender_ = sender;
/**
* Text identifying invitation receiver. Empty in case of a personal
* invitation. Identifies a group or domain in case of an invitation
* received by a group manager.
* @private {string}
*/
this.receiver_ = receiver;
/**
* Shared destination.
* @private {!print_preview.Destination}
*/
this.destination_ = destination;
/**
* JSON representation of the ACL entry this invitation was sent to.
* @private {!Object}
*/
this.aclEntry_ = aclEntry;
/**
* Account this invitation is sent for.
* @private {string}
*/
this.account_ = account;
}
/** @return {string} Text identifying invitation sender. */
get sender() {
return this.sender_;
}
/** @return {string} Text identifying invitation receiver. */
get receiver() {
return this.receiver_;
}
/**
* @return {boolean} Whether this user acts as a manager for a group of
* users.
*/
get asGroupManager() {
return !!this.receiver_;
}
/** @return {!print_preview.Destination} Shared destination. */
get destination() {
return this.destination_;
}
/** @return {string} Scope (account) this invitation was sent to. */
get scopeId() {
return this.aclEntry_['scope'] || '';
}
/** @return {string} Account this invitation is sent for. */
get account() {
return this.account_;
}
}
// Export
return {Invitation: Invitation};
});