index.js
function(options, params) {

            // Create connection to qps
            var qpsApi = qps(options);

            // Returned object
            var task = new Task();

            // Ticket flow
            Rx.Observable
                .from(qpsApi.ticket.post(params)) 
                .catch((err) => {
                    if (err.match(/^Specified targetId .* was unknown$/)) {
                        
                        // if there was a problem with the target Id, try to generate another ticket by reseting target Id
                        task.running('warning', `Wrong targetId: '${params.TargetId}', generating a ticket to default location`);
                        delete params.TargetId;

                        return Rx.Observable.from(module.exports.getTicket(options, params));
                    } else {
                        return Rx.Observable.throw(new Error(err));
                    }
                })
                .subscribe(task);
                
            if (returnObservable) {
                return task;
            } else {
                return task.toPromise(extPromise);
            }
        }
function(options, params) {

            // Create connection to qps
            var qpsApi = qps(options);

            // Returned object
            var task = new Task();

            // Ticket flow
            Rx.Observable
                .from(qpsApi.ticket.post(params)) 
                .catch((err) => {
                    if (err.match(/^Specified targetId .* was unknown$/)) {
                        
                        // if there was a problem with the target Id, try to generate another ticket by reseting target Id
                        task.running('warning', `Wrong targetId: '${params.TargetId}', generating a ticket to default location`);
                        delete params.TargetId;

                        return Rx.Observable.from(module.exports.getTicket(options, params));
                    } else {
                        return Rx.Observable.throw(new Error(err));
                    }
                })
                .subscribe(task);
                
            if (returnObservable) {
                return task;
            } else {
                return task.toPromise(extPromise);
            }
        }
function ( options , params ) { // Create connection to qps var qpsApi = qps ( options ) ; // Returned object var task = new Task ( ) ; // Ticket flow Rx . Observable . from ( qpsApi . ticket . post ( params ) ) . catch ( ( err ) => { if ( err . match ( / ^Specified targetId .* was unknown$ / ) ) { // if there was a problem with the target Id, try to generate another ticket by reseting target Id task . running ( 'warning' , ` ${ params . TargetId } ` ) ; delete params . TargetId ; return Rx . Observable . from ( module . exports . getTicket ( options , params ) ) ; } else { return Rx . Observable . throw ( new Error ( err ) ) ; } } ) . subscribe ( task ) ; if ( returnObservable ) { return task ; } else { return task . toPromise ( extPromise ) ; } }
Generates a ticket on Qlik Sense QRS Api. If the targetId is not correct
then the ticket will redirect to the hub

@example
```javascript
utils.getTicket({
restUri: 'https://10.76.224.72',
pfx: pfx,
passPhrase: ''
},
{
UserId: 'qlikservice',
UserDirectory: '2008R2-0',
Attributes: []
}
}).then(function(retVal) {
console.log(retVal);
});
```

@memberOf Qlik

@param {options}             options     Qlik Sense connection options
@param {ticketParams}        params      the ticket parameters
@returns {Task.<ticket>}                 a Task resolving to the generated ticket
Generates a ticket on Qlik Sense QRS Api . If the targetId is not correct then the ticket will redirect to the hub