@itslanguage/api
Version:
The JavaScript API SDK for ITSLanguage.
44 lines (40 loc) • 1.74 kB
JavaScript
/**
* This file contains the readily available functions which interact with the ITSLanguage user API.
* Users can have email based credentials. These credentials can be managed using the REST API.
* Only users with administrative powers can perform these calls.
*
* @see {@link https://itslanguage.github.io/itslanguage-docs/api/emailauth/index.html}
*
* @module api/emailauth
*/
import { authorisedRequest } from '../communication';
/**
* The URL for the emailAuth handler.
* According to the docs the following URL's are valid to be used for emailauth interaction.
*
* - POST `/users/emailauth`.
* - POST `/users/:userId/emailauth`.
*
* @param {string} [userId] - The id of the user to interact with emailauth API.
* @returns {string} - A composed URL to use for requests.
*/
var url = userId => "/user" + (userId ? "/" + userId : '') + "/emailauths";
/**
* Create an emailAuth for either the current user or a user provided with an userId.
* To create an email auth for another user you could pass the userId but depending on permissions
* it could also be possible to use impersonation for this.
*
* @param {string} emailAuth - The Id of the user to create or overwrite a profile for.
* @param {string} emailAuth.email - A unique email address.
* @param {string} [emailAuth.password] - A secure password, if none is given, it will be generated.
* @param {string} [userId=null] - The Id of the user to create an emailAuth for.
*
* @returns {Promise} - The emailAuth creation promise.
*/
// eslint-disable-next-line import/prefer-default-export
export function create(emailAuth, userId) {
if (userId === void 0) {
userId = null;
}
return authorisedRequest('POST', url(userId), emailAuth);
}