ionic-coreo
Version:
Ionic2 module for integration with Coreo
107 lines (106 loc) • 3.41 kB
TypeScript
/// <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;