refactor: split up SCUserConfiguration type

This commit is contained in:
Rainer Killinger
2022-01-21 12:22:13 +01:00
parent 52bdf93356
commit 26dd531d24
2 changed files with 29 additions and 19 deletions

View File

@@ -13,7 +13,7 @@
* this program. If not, see <https://www.gnu.org/licenses/>. * this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import {SCUserConfiguration} from './user'; import {SCUserConfigurationMap} from './user';
/** /**
* Supported authorization provider types * Supported authorization provider types
@@ -87,7 +87,7 @@ export interface SCAuthorizationProviderEndpoints {
* *
* @see https://www.npmjs.com/package/jsonpath * @see https://www.npmjs.com/package/jsonpath
*/ */
mapping: { [key in keyof SCUserConfiguration]: string; }; mapping: SCUserConfigurationMap;
/** /**
* URL to revoke a token * URL to revoke a token

View File

@@ -15,40 +15,50 @@
import {SCAcademicPriceGroup} from '../things/abstract/thing-that-can-be-offered'; import {SCAcademicPriceGroup} from '../things/abstract/thing-that-can-be-offered';
/**
* User configuration keys mapped to string type while including their requiredness
*/
export type SCUserConfigurationMap = { [K in keyof SCUserConfigurationOptional]?: string } & { [K in keyof SCUserConfigurationRequired]: string };
/** /**
* A user configuration * A user configuration
*/ */
export interface SCUserConfiguration { export type SCUserConfiguration = SCUserConfigurationRequired & SCUserConfigurationOptional;
/**
* User's e-mail
*/
email?: string;
/**
* User's family name
*/
familyName?: string;
/**
* User's given name
*/
givenName?: string;
/**
* A user configurations required properties
*/
interface SCUserConfigurationRequired {
/** /**
* ID given to the user * ID given to the user
*/ */
id: string; id: string;
/** /**
* The complete name of the user combining all the parts of the name into one * The complete name of the user combining all the parts of the name into one
*/ */
name: string; name: string;
/** /**
* Role assigned to the user * Role assigned to the user
*/ */
role: keyof SCAcademicPriceGroup; role: keyof SCAcademicPriceGroup;
}
/**
* A user configurations optional properties
*/
interface SCUserConfigurationOptional {
/**
* User's e-mail
*/
email?: string;
/**
* User's family name
*/
familyName?: string;
/**
* User's given name
*/
givenName?: string;
/** /**
* Student ID given to the user * Student ID given to the user
*/ */