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/>.
*/
import {SCUserConfiguration} from './user';
import {SCUserConfigurationMap} from './user';
/**
* Supported authorization provider types
@@ -87,7 +87,7 @@ export interface SCAuthorizationProviderEndpoints {
*
* @see https://www.npmjs.com/package/jsonpath
*/
mapping: { [key in keyof SCUserConfiguration]: string; };
mapping: SCUserConfigurationMap;
/**
* URL to revoke a token

View File

@@ -15,40 +15,50 @@
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
*/
export interface SCUserConfiguration {
/**
* User's e-mail
*/
email?: string;
/**
* User's family name
*/
familyName?: string;
/**
* User's given name
*/
givenName?: string;
export type SCUserConfiguration = SCUserConfigurationRequired & SCUserConfigurationOptional;
/**
* A user configurations required properties
*/
interface SCUserConfigurationRequired {
/**
* ID given to the user
*/
id: string;
/**
* The complete name of the user combining all the parts of the name into one
*/
name: string;
/**
* Role assigned to the user
*/
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
*/