API Docs for:
Show:

File: src/loopback-user-client.coffee


LoopbackClient = require('./loopback-client')

###*
Loopback User Client to access to UserModel (or extenders)

see http://docs.strongloop.com/display/public/LB/PersistedModel+REST+API
see also http://apidocs.strongloop.com/loopback/#persistedmodel

@class LoopbackUserClient
@module loopback-promised
###
class LoopbackUserClient extends LoopbackClient


    ###*
    Confirm the user's identity.

    @method confirm
    @param {String} userId
    @param {String} token The validation token
    @param {String} redirect URL to redirect the user to once confirmed
    @return {Promise(Object)}
    ###
    confirm: (userId, token, redirect) ->

        path        = '/confirm'
        http_method = 'GET'

        params =
            uid      : userId
            token    : token
            redirect : redirect

        @request(path, params, http_method)


    ###*
    Login a user by with the given credentials

    @method login
    @param {Object} credentials email/password
    @param {String} include Optionally set it to "user" to include the user info
    @return {Promise(Object)}
    ###
    login: (credentials, include) ->

        path = '/login'
        path += "?include=#{include}" if include
        http_method = 'POST'

        params = credentials

        # TODO handle include option
        @request(path, params, http_method)


    ###*
    Logout a user with the given accessToken id.

    @method logout
    @param {String} accessTokenID
    @return {Promise}
    ###
    logout: (accessTokenID) ->

        path        = "/logout?access_token=#{accessTokenID}"
        http_method = 'POST'

        params = null

        @request(path, params, http_method)


    ###*
    Create a short lived acess token for temporary login. Allows users to change passwords if forgotten.

    @method resetPassword
    @param {String} email
    @return {Promise}
    ###
    resetPassword: (email) ->

        path        = "/logout?access_token=#{accessTokenID}"
        http_method = 'POST'

        params = email: email

        # TODO handle include option
        @request(path, params, http_method)


module.exports = LoopbackUserClient