This is a library that makes it easier for servers that are talking to the Tidepool User API.
require('user-api-client')(config, hostGetter, request);
config-- an object containing configuration parametershostGetter-- an object with a get() method. The get() method should return an array of objects that can be passed into url.format() to produce a valid url to talk to.httpClient-- (optional) -- the result of require('./httpClient.js')(config). This is primarily exposed to allow for mocking in tests. If not supplied a new "correct" one will be created.members-- client and middleware.
login (username, password, cb)Frontend to the API call to log in a userusername-- stringpassword-- passwordcb (err, response)err-- null if no error, else an error objectresponse-- result from the /user/login api call
getAnonymousPair (userid, cb)Frontend to the API call to retrieve a pair from the user object without storing ituserid-- Tidepool-assigned useridcb (err, response)err-- null if no error, else an error objectresponse-- result from the /user/private api call
checkToken (token, cb)Frontend to the API call to check the validity of a server or user tokentoken-- the server token to be checkedcb (err, response)err-- null if no error, else an objectresponse-- result from the /user/token api call
createUser (userObj, cb)Frontend to the API call to create a useruserObj-- object containing username, emails and password fields at minimumcb (err, response)err-- null if no error, else an error objectresponse-- result from the /user/user api call
withServerToken (cb)Calls CB with a valid server token, iff one can be retrievedcb (err, token)err-- always null if callback is called at alltoken-- a valid server token
expressify (middlewareFn)Converts restify middleware into express middleware.middlewareFn-- the restify middleware Returns: middleware that works with express
checkToken (client)Middleware to process the session token -- expects a token in a request header, processes it, and returns information about the token in the _tokendata variable on the request.client-- client to use when talking to the user-api