UNPKG

magister.js

Version:

A JavaScript implementation of the Magister 6 API

87 lines (69 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _magisterThing = _interopRequireDefault(require("./magisterThing")); var _activityElement = _interopRequireDefault(require("./activityElement")); var _util = require("./util"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class Activity extends _magisterThing.default { /** * @private * @param {Magister} magister * @param {Object} raw */ constructor(magister, raw) { super(magister); /** * @type {String} * @readonly */ this.id = (0, _util.toString)(raw.Id); /** * @type {String} * @readonly */ this.title = raw.Titel; /** * @type {String} * @readonly */ this.description = (0, _util.cleanHtmlContent)(raw.Details); /** * @type {Date} * @readonly */ this.signinStart = (0, _util.parseDate)(raw.StartInschrijfdatum); /** * @type {Date} * @readonly */ this.signinEnd = (0, _util.parseDate)(raw.EindeInschrijfdatum); /** * @type {Date} * @readonly */ this.visibleFrom = (0, _util.parseDate)(raw.ZichtbaarVanaf); /** * @type {Date} * @readonly */ this.visibleTo = (0, _util.parseDate)(raw.ZichtbaarTotEnMet); /** * @type {String} * @private * @readonly */ this._url = `${magister._personUrl}/activiteiten/${this.id}`; } /** * @returns {Promise<ActivityElement[]>} */ elements() { const url = `${this._url}/onderdelen`; return this._magister.http.get(url).then(res => res.json()).then(res => res.Items.map(e => new _activityElement.default(this._magister, this, e))); } } var _default = Activity; exports.default = _default;