104 lines
2.3 KiB
TypeScript
104 lines
2.3 KiB
TypeScript
import { ISetting, ISettingColor } from '../../ISetting';
|
|
import { PaginatedResult } from '../helpers/PaginatedResult';
|
|
|
|
type SettingsUpdateProps = SettingsUpdatePropDefault | SettingsUpdatePropsActions | SettingsUpdatePropsColor;
|
|
|
|
type SettingsUpdatePropsActions = {
|
|
execute: boolean;
|
|
};
|
|
|
|
export type OauthCustomConfiguration = {
|
|
_id: string;
|
|
clientId?: string;
|
|
custom: unknown;
|
|
service?: string;
|
|
serverURL: unknown;
|
|
tokenPath: unknown;
|
|
identityPath: unknown;
|
|
authorizePath: unknown;
|
|
scope: unknown;
|
|
loginStyle: 'popup' | 'redirect';
|
|
tokenSentVia: unknown;
|
|
identityTokenSentVia: unknown;
|
|
keyField: unknown;
|
|
usernameField: unknown;
|
|
emailField: unknown;
|
|
nameField: unknown;
|
|
avatarField: unknown;
|
|
rolesClaim: unknown;
|
|
groupsClaim: unknown;
|
|
mapChannels: unknown;
|
|
channelsMap: unknown;
|
|
channelsAdmin: unknown;
|
|
mergeUsers: unknown;
|
|
mergeRoles: unknown;
|
|
accessTokenParam: unknown;
|
|
showButton: unknown;
|
|
|
|
appId: unknown;
|
|
consumerKey?: string;
|
|
|
|
clientConfig: unknown;
|
|
buttonLabelText: unknown;
|
|
buttonLabelColor: unknown;
|
|
buttonColor: unknown;
|
|
};
|
|
|
|
export const isOauthCustomConfiguration = (config: any): config is OauthCustomConfiguration => Boolean(config);
|
|
|
|
export const isSettingsUpdatePropsActions = (props: Partial<SettingsUpdateProps>): props is SettingsUpdatePropsActions =>
|
|
'execute' in props;
|
|
|
|
type SettingsUpdatePropsColor = {
|
|
editor: ISettingColor['editor'];
|
|
value: ISetting['value'];
|
|
};
|
|
|
|
export const isSettingsUpdatePropsColor = (props: Partial<SettingsUpdateProps>): props is SettingsUpdatePropsColor =>
|
|
'editor' in props && 'value' in props;
|
|
|
|
type SettingsUpdatePropDefault = {
|
|
value: ISetting['value'];
|
|
};
|
|
|
|
export const isSettingsUpdatePropDefault = (props: Partial<SettingsUpdateProps>): props is SettingsUpdatePropDefault =>
|
|
'value' in props;
|
|
|
|
export type SettingsEndpoints = {
|
|
'settings.public': {
|
|
GET: () => PaginatedResult & {
|
|
settings: Array<ISetting>;
|
|
};
|
|
};
|
|
|
|
'settings.oauth': {
|
|
GET: () => {
|
|
services: Partial<OauthCustomConfiguration>[];
|
|
};
|
|
};
|
|
|
|
'settings.addCustomOAuth': {
|
|
POST: (params: { name: string }) => void;
|
|
};
|
|
|
|
settings: {
|
|
GET: () => {
|
|
settings: ISetting[];
|
|
};
|
|
};
|
|
|
|
'settings/:_id': {
|
|
GET: () => Pick<ISetting, '_id' | 'value'>;
|
|
POST: (params: SettingsUpdateProps) => void;
|
|
};
|
|
|
|
'service.configurations': {
|
|
GET: () => {
|
|
configurations: Array<{
|
|
appId: string;
|
|
secret: string;
|
|
}>;
|
|
};
|
|
};
|
|
};
|