npm package: @onewelcome/ujo-ui-sdk
Description: User Journey Orchestration UI SDK
Latest version: 1.0.7-alpha.1

# ujo-ui-sdk

[![CircleCI](https://dl.circleci.com/insights-snapshot/gh/onewelcome/ujo-ui-sdk/master/build-workflow/badge.svg?window=30d&circle-token=924159d89992e636ad1a05e45b78b7280988d5c0)](https://app.circleci.com/insights/github/onewelcome/ujo-ui-sdk/workflows/build-workflow/overview?branch=master&reporting-window=last-30-days&insights-snapshot=true)
This SDK project, contains reusable business logic and API calls for ujo-ui.

## Overview

This SDK is designed to simplify the process of integrating with UJO Core API in UI application. By using this SDK, your UI application can call the exposed SDK methods instead of directly calling the API. The SDK handles API calls internally, applies necessary business logic, and returns a transformed response to the UI.

## Features

- Simplified API integration
- Handles internal API calls
- Error handling
- Applies business logic
- Returns transformed responses

## Installation

To install the SDK, you can use npm or yarn:

```bash
  npm install @onewelcome/ujo-ui-sdk

  or

  yarn add @onewelcome/ujo-ui-sdk
```

## Usage

To use the SDK, you can import it into your UI application and call the exposed methods.

## Importing the SDK

First, import the SDK into your project:

```bash
  import { UjoCoreApi, ..., ... } from '@onewelcome/ujo-ui-sdk';
```

## Initializing the SDK and using the methods

Initialize the SDK with the necessary configuration:

```bash
  try {
    const api = new UjoCoreApi({
      basePath: window.location.origin //'http://localhost:3000'
    });

    const response = await api.initiateJourney({
      contextToken: contextToken
    });

    console.log(response);
    // Handle the transformed response

  } catch (e) {
    console.error(error);
    // Handle errors
  }
```

## Available Methods

`initiateJourney(reqParam: InitiateJourneyRequestPayload): Promise<InitiateJourneyInstanceResponse>`

Initiate a journey with the provided request parameters

- `Parameters`:
  - `reqParam`(InitiateJourneyRequestPayload): Request parameters for initiating the journey.
- `Returns`:
  - A Promise that resolves to InitiateJourneyInstanceResponse .

`getSteps(reqParam: GetStepRequest): Promise<JourneyInstanceResponse>`

Fetches steps from the backend API.

- `Parameters`:
  - `reqParam`(GetStepRequest): Request parameters for getStep API call.
- `Returns`:
  - A Promise that resolves to JourneyInstanceResponse.

`updateStep(reqParam: UpdateStepOperationRequest): Promise<JourneyInstanceResponse>`

Update step on the backend API.

- `Parameters`:
  - `reqParam`(UpdateStepOperationRequest): Request parameters for update step API call.
- `Returns`:
  - A Promise that resolves to JourneyInstanceResponse.

## Contributing

If you wish to contribute to the development of this SDK, please follow these steps:

### Getting Started

1. **Fork the repository**: Click on the 'Fork' button at the top right corner of the repository page to create a copy of the repository under your GitHub account.
2. **Clone the forked repository**: Clone the forked repository to your local machine.
   ```bash
   git clone https://github.com/onewelcome/ujo-ui-sdk.git
   git checkout -b feature-or-bugfix-branch-name
   cd ujo-ui-sdk
   npm install
   ```
3. **To start development**:
   - Make your changes
   - check if build passes by running `npm run build` or;
   - run test in watch mode `npm run test:watch` to automatic code compiling enabled
   - For more command check `package.json` file script section.
   - Submit a pull request

## Release

To generate a release, create a tag with next version.