@financial-times/n-membership-sdk
TypeScript icon, indicating that this package has built-in type declarations

49.1.0 • Public • Published

Membership SDK

A software development kit that centralises Membership API calls.

CircleCI

const { ProductionConfiguration, Session } = require("n-membership-sdk");

// Use ProductionConfiguration defaults and set a key
const config = new ProductionConfiguration({
  sessionApiKey: "secret",
});

// Setup and use a service
const sessionSdk = new Session(config);
const sessionInfo = sessionSdk.fetchSessionInfo(sessionId);

Table of Contents

Usage

Configuration

The Configuration class provides environment information for services, a Configuration instance needs to be provided when instantiating a service class.

const config = new Configuration({
    // Provide environment information
})

There are two helper classes extend Configuration and come with pre-populated environment information TestConfiguration and ProductionConfiguration. Non application specific configuration is defaulted (i.e. hosts) leaving only keys to be provided by the developer.

const config = new ProductionConfiguration({
    userApiKey: 'secret'
})

Methods

  • set Set the config properties using either a property string or config object
  • get Return the value of the property given

Service classes

Models

Errors

Exposes all the error types the SDK could throw allowing the developer to test the error and handle things differently.

Usage

const { Errors } = require('@financial-times/n-membership-sdk');

try {
    const gateway = await subscription.fetchGatewayName(type, country);
} catch (error) {
    if (error instanceof Errors.NotFoundError) {
        // Handle Gateway not being found
    } else {
        // Handle all other errors
    }
}

Types

BadRequestError - HTTP response code 400 received from API
UnauthorizedError - HTTP response code 401 received from API
ForbiddenError - HTTP response code 403 received from API
NotFoundError - HTTP response code 404 received from API
ServerError - HTTP response code in 500 range or unhandled 400 range received from API
InvalidResponseError - Response from the API was invalid
EmptyResultError - No result to return after processing
ValidationError - Incorrect parameter supplied

Services

These are the Membership endpoints that are currently being used by the SDK.

User

HEAD https://api.ft.com/users?email=${email}
POST https://api.ft.com/users/profile
PUT  https://api.ft.com/users/${user.id}/profile
POST https://api.ft.com/login
POST https://api.ft.com/users/${userId}/credentials/change-password

Subscription

GET  https://api.ft.com/subscriptions/${subscriptionId}
POST https://api.ft.com/subscriptions/actions/subscribe
GET  https://api.ft.com/paymentpage2/config/${paymentType}/${appId}/${countryCode}
GET  https://api.ft.com/payment-gateway/${paymentType}/${countryCode}
POST https://api.ft.com/paymentpage2/validation/signature
GET  https://dd-mandate-svc-eu-test.memb.ft.com/mandate/${userId}

Authorisation

POST https://api.ft.com/authorize?client_id=${clientId}&response_type=token&scope=${scope}

Invoice

GET https://api-t.ft.com/invoice/membership/invoices/v1?accountId=${accountId}

Dependents (0)

Package Sidebar

Install

npm i @financial-times/n-membership-sdk

Weekly Downloads

698

Version

49.1.0

License

ISC

Unpacked Size

1.24 MB

Total Files

554

Last publish

Collaborators

  • robertboulton
  • seraph2000
  • hamza.samih
  • notlee
  • emmalewis
  • aendra
  • the-ft
  • rowanmanning
  • chee
  • alexwilson