uapi-json
Version:
Travelport Universal API
82 lines (59 loc) • 2.69 kB
Markdown
# Terminal :computer:
Terminal service provides an interface to run terminal commands
for terminal-enabled uAPI credentials.
# PCC Emulation
<a name='emulatePcc'></a>
You can use Terminal service to run commands on behalf of your own PCC
or to use `emulatePcc` option from [auth](../README.md#auth)
to run commands on behalf of other PCC using your own Service bureau.
In `uapi` terminals are not linked to the specific PCC and identified only by tokens.
That's why, if the `emulatePcc` option is passed, we run `SEM` command behind the scene
to provide emulation for specific PCC.
Though you may still send `SEM` commands to the terminal on your own,
in order to not messthings up, we highly recommend you to use several terminal instances
for several PCC emulations.
See [advanced emulation example](../examples/Terminal/emulation.js) to get an example
on how to use emulation.
# uAPI error handling
In case you want to handle some specific errors from uAPI, you can provde `uapiErrorHandler` function
in options.
Function should return response from retried command or any other command.
Footprint of the functions should be as follows:
```javascript
async (
executeCommandWithRetry,
{ command, error: err }
) => {
// your code goes here
// response is an array of strings (lines of terminal response)
return response;
}
```
# Session closing
Be aware to close the session after all your manipulations with the terminal.
Session closing takes the current token and sends a request to terminate the session,
see [close_session](#close_session) method.
# API
**TerminalService**
* [`.executeCommand(command, stopMD)`](#execute_command)
* [`.closeSession()`](#close_session)
* [`.getToken()`](#get_token)
## .executeCommand(command, stopMD)
<a name="execute_command"></a>
Executes a command in terminal and returns its terminal response
**Returns**: `Promise` that returns terminal command response in `String` format
| Param | Type | Description |
| --- | --- | --- |
| command | `String` | String representation of the command you want to execute |
| stopMD | `(screens) => boolean` | Function which gets all previous screens concatenated and detects if more `MD` command needed. |
## .closeSession()
<a name="close_session"></a>
When you have finished command execution it's necessary to close terminal connection
to free up space in the terminal pool. Takes no parameters
**Returns**: `Promise` which fullfills with true if terminal was succesfully closed
## .getToken()
<a name="get_token"></a>
Use this method to resolve token.
If token is resolved after `executeCommand` it takes no time for resolving.
Takes no parameters
**Returns**: `Promise<String>`