@etsoo/materialui
Version:
TypeScript Material-UI Implementation
68 lines (60 loc) • 1.5 kB
text/typescript
import {
ApiRefreshTokenDto,
IApi,
IApiPayload,
TokenAuthRQ
} from "@etsoo/appscript";
import { ReactAppType } from "./ReactApp";
import { IServiceUser, ServiceUserToken } from "./IServiceUser";
import { IActionResult } from "@etsoo/shared";
/**
* Service application interface
*/
export interface IServiceApp extends ReactAppType {
/**
* Core system API
*/
readonly coreApi: IApi;
/**
* Core system origin
*/
readonly coreOrigin: string;
/**
* Get token authorization request data
* @param api API, if not provided, use the core API
* @returns Result
*/
getTokenAuthRQ(api?: IApi): TokenAuthRQ;
/**
* Load core system UI
* @param tryLogin Try login or not
*/
loadCore(tryLogin?: boolean): void;
/**
* Load URL with core origin
* @param url URL
*/
loadUrlEx(url: string): void;
/**
* Switch organization
* @param organizationId Organization ID
* @param fromOrganizationId From organization ID
* @param payload Payload
*/
switchOrg(
organizationId: number,
fromOrganizationId?: number,
payload?: IApiPayload<IActionResult<IServiceUser & ServiceUserToken>>
): Promise<IActionResult<IServiceUser & ServiceUserToken> | undefined>;
/**
*
* @param user Current user
* @param core Core system API token data
* @param dispatch User state dispatch
*/
userLoginEx(
user: IServiceUser & ServiceUserToken,
core?: ApiRefreshTokenDto,
dispatch?: boolean
): void;
}