Source: resource/session.js

"use strict";
const baseResource_1 = require("./baseResource");
/**
 * Represents a session client for the Jira Connector
 *
 * @constructor Session
 * @param settings The information needed to setup the resource
 * @param {string} settings.name The name of jira model.
 * @param {*} settings.request The request function to use.
 * @param {jiraApi} settings.jiraApi The jiraApi library to use.
 */
class session extends baseResource_1.baseResource {
    constructor(connector, definition) {
        super(connector, definition);
        /**
         * login to jira and create a new session
         * @param {string} username The username to login with
         * @param {string} password The password of the username
         * @return {Promise} Resolved with user session or rejected with error
         */
        this.login = (username, password) => {
            return new Promise((resolve, reject) => {
                this.jiraApi.auth.login({ username, password }).then((result) => {
                    result.data.session.token = Buffer.from(`${username}:${password}`, 'utf8').toString('base64');
                    return resolve(result);
                }).catch((e) => {
                    return reject(e.message);
                });
            });
        };
    }
}
exports.session = session;