Newts Parading Majestically

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

    29.0.0 • Public • Published

    Membership SDK

    A software development kit that centralises Membership API calls.

    CircleCI

    const { ProductionConfiguration, Graphql } = require('n-membership-sdk');
    
    // Use ProductionConfiguration defaults and set a key
    const config = new ProductionConfiguration({
        graphqlApiKey: 'secret'
    });
    
    // Setup and use a service
    const graphql = new Graphql(config);
    const userDetails = graphql.getUserDetails(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'
    })

    For an example of the TestConfiguration setup click here.

    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
    

    Testing

    Use the demo app to test individual methods within a given service. See the demo README for how to do this.

    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}
    

    Graphql

    POST https://api.ft.com/memb-query/api
    

    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}
    

    Membership Events

    POST https://api.ft.com/events/bizzaboo/register
    

    Keywords

    none

    Install

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

    DownloadsWeekly Downloads

    242

    Version

    29.0.0

    License

    ISC

    Unpacked Size

    1.49 MB

    Total Files

    603

    Last publish

    Collaborators

    • hamza.samih
    • nikita.lohia
    • notlee
    • efinlay24
    • emmalewis
    • aendra
    • the-ft
    • rowanmanning
    • chee
    • alexwilson