@financial-times/n-user-api-client

5.0.0 • Public • Published

n-user-api-client

A client to access the User API on the FT Membership Platform

npm version

CircleCI Dependencies devDependencies

Installation

npm i @financial-times/n-user-api-client --save

Usage example

import {updateUserProfile} from '@financial-times/n-user-api-client';

await updateUserProfile({
    session: 'abc123',
    userId: 'def456',
    apiHost: process.env['MEMBERSHIP_API_HOST_PROD'],
    apiKey: process.env['MEMBERSHIP_API_KEY_PROD'],
    apiClientId: process.env['AUTH_API_CLIENT_ID_PROD'],
    userUpdate: { ... }
})

Public methods

getUserBySession

Arguments

session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be null

demographicsLists (object) - optional - lists of demographics data eg positions, industries, responsibilities. If supplied they'll be used to decorate the user object. If the user has a value stored for each then that value will be marked selected in the corresponding list

Return value

A 'user object' with profile and subscription sections

getUserIdAndSessionData

Arguments

session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be null

apiHost, apiKey - the consumer app should pass these in, based on Vault env vars

Return value

A user ID (string)

getPaymentDetailsBySession

Arguments

session (string) - a valid user session ID. If stale (> 30 minutes old) then the returned user data will be redacted, some fields including address will be null

Return value

A payment method detail Object (varies in form depends on the type of the method - CreditCard|PayPal|DirectDebit), returns null if the user hasn't got a payment method yet.

loginUser

Arguments

email (string)

password (string)

remoteIp (string) - the IP of the user

countryCode (string) - the country the user is located in

userAgent (string) - the User-Agent header of the user

apiHost, apiKey - the consumer app should pass these in, based on Vault env vars

appName - the name of the app using n-user-api-client

Return value

fresh session data will be returned.

updateUserProfile

Arguments

session (string) - a valid user session ID. If stale (> 30 minutes old) then a valid authorization API token won't be returned and the overall request will fail

apiHost, apiKey, apiClientId - the consumer app should pass these in, based on Vault env vars

userId (string)

userUpdate - a user object. It will be merged into a fresh copy of the user's record retrieved from the database

Return value

The updated user object

changeUserPassword

Arguments

session (string) - a valid user session ID. If stale (> 30 minutes old) then a valid authorization API token won't be returned and the overall request will fail

apiHost, apiKey, apiClientId - the consumer app should pass these in, based on Vault env vars

userId (string)

passwordData (object) - in this format

appName - the name of the app using n-user-api-client

Return value

If successful, the user will be reauthenticated and the fresh session data will be returned.

Build

The module is written in typescript - compile to the dist/ folder with:

make build

Releasing

To release a new version of the client, draft a new release in Github. There's no need to update package.json.

/@financial-times/n-user-api-client/

    Package Sidebar

    Install

    npm i @financial-times/n-user-api-client

    Weekly Downloads

    30

    Version

    5.0.0

    License

    ISC

    Unpacked Size

    474 kB

    Total Files

    130

    Last publish

    Collaborators

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