UNPKG

ionic-coreo

Version:

Ionic2 module for integration with Coreo

107 lines (106 loc) 3.41 kB
/// <reference types="promise.prototype.finally" /> import { Facebook } from '@ionic-native/facebook'; import { GooglePlus } from '@ionic-native/google-plus'; import { Storage } from '@ionic/storage'; import { Platform } from 'ionic-angular'; import { CoreoClient } from './client'; import { CoreoUser } from './user'; import { CoreoConfig } from './config'; import { CoreoTokenContext, CoreoAuthToken } from './token-context'; /** * Container for the result of authentication */ export interface CoreoAuthError { status: number; msg: string; } export declare type CoreoAuthResult = CoreoAuthToken | CoreoAuthError; export declare type CoreoAuthMethod = 'basic' | 'google' | 'facebook' | 'twitter'; export interface CoreoAuthModules { basic: CoreoAuthType; google: CoreoAuthType; [key: string]: CoreoAuthType; } export interface CoreoAuthCredentials { email: string; password: string; } export interface CoreoOAuthConfig { surveyId: number; webClientId?: string; } export declare type CoreoAuthLoginOptions = CoreoAuthCredentials | CoreoOAuthConfig; export interface CoreoAuthType { login(params: CoreoAuthLoginOptions): Promise<CoreoAuthResult>; logout(): Promise<void>; signup?(email: string, password: string, displayName: string, username: string): Promise<CoreoAuthResult>; } export declare class BasicAuth implements CoreoAuthType { private client; private platform; private config; constructor(client: CoreoClient, platform: Platform, config: CoreoConfig); login(credentials: CoreoAuthCredentials): Promise<CoreoAuthResult>; logout(): Promise<void>; signup(email: string, password: string, displayName: string, username: string): Promise<CoreoAuthResult>; } /** * Google OAuth */ export declare class GoogleAuth implements CoreoAuthType { private client; private platform; private google; constructor(client: CoreoClient, platform: Platform, google: GooglePlus); login(config: CoreoOAuthConfig): Promise<CoreoAuthResult>; logout(): Promise<void>; } /** * Facebook OAuth */ export declare class FacebookAuth implements CoreoAuthType { private client; private platform; private facebook; constructor(client: CoreoClient, platform: Platform, facebook: Facebook); login(config: CoreoOAuthConfig): Promise<CoreoAuthResult>; logout(): Promise<any>; } /** * Coreo Auth Service */ export declare class CoreoAuth { private tokenContext; private client; private platform; private user; private config; private storage; private google; private facebook; modules: CoreoAuthModules; context: CoreoAuthType; constructor(tokenContext: CoreoTokenContext, client: CoreoClient, platform: Platform, user: CoreoUser, config: CoreoConfig, storage: Storage, google: GooglePlus, facebook: Facebook); /** * Login method */ login(method: CoreoAuthMethod, params?: CoreoAuthLoginOptions): Promise<CoreoAuthResult>; /** * Signup Method */ signup(email: string, password: string, displayName: string, username: string): Promise<CoreoAuthResult>; /** * Logout Method */ logout(): Promise<void>; reset(): void; /** * Get Profile */ profile(): Promise<any>; /** * Update username */ updateUsername(username: string): Promise<void>; } export default CoreoAuth;