Ionic2 module for integration with Coreo
Ionic2 module for integrating with Coreo
npm install ionic-coreo --save
`Update your Ionic
app.module.ts:
`
import { CoreoModule } from 'ionic-coreo';
...
@NgModule({
imports: [CoreoModule]
...
})
export class AppModule {}
`
$3
Currently not working!
`
import { CoreoModule, CoreoConfig } from 'ionic-coreo';
...
const coreoConfig = new CoreoConfig({
baseUrl: 'https://coreo-dev.herokuapp.com'
});
@NgModule({
imports: [
CoreoModule.forRoot(coreoConfig)
]
...
})
export class AppModule {}
`API
The following services are provided as
@Injectable()s
$3
A thin wrapper around Ionic Native's GooglePlus and Facebook authentication.
Ensure you have installed the relevant plugins and followed the configuration steps in the following documentation:
- Google : https://ionicframework.com/docs/v2/native/google-plus/
- Facebook : https://ionicframework.com/docs/v2/native/facebook/
NOTE You must configure your OAuth credentials within Coreo.
Go to Surveys > Your Survey > Credentials and add the relevant data.
`
import { CoreoAuth, CoreoAuthResult } from 'ionic-coreo';@Component({
...
})
export class MyLoginComponent {
constructor(
private auth: CoreoAuth
) {}
login(): Promise {
return this.auth.login('basic', { email: 'bob@mail.com', password: 'bob});
// OR
// const surveyId = 12;
// return this.auth.login('google', surveyId);
}
}
`#### Methods:
-
login(method: 'basic' | 'google' | 'facebook', params: CoreoAuthLoginOptions)
- logout(): void#### Types:
- CoreoAuthLoginOptions - If the method is 'basic' then this is an
{email, password} object, else it is the surveyId you are logging in to.$3
#### Properties:
-
isLoggedIn: boolean - Flag indicating whether the user is logged in or not.
- id: number - User ID
- email: string - Email
- role: string - Role
- displayName: string - Display Name
- imageUrl: string - Users' profile image URL$3
An HTTP client for sending queries and posting data to Coreo. Handles all authentication (if the user is logged in)
`
import { CoreoClient } from 'ionic-coreo';@Injectable()
export class MyDataService {
constructor(
private client: CoreoClient
) {}
getData(): Observable {
return this.client.request('/records?q=surveyId:12');
}
}
`$3
- request(path: string, options: CoreoClientRequestOptions = {}) : Observable
- post(path: string, body?: FormData | any, options: CoreoClientRequestOptions = {}) : Observable$3
- CoreoClientRequestOptions
- method: string - HTTP method. Defaults to 'get'
- headers?: any - An Object of HTTP headers
- body?: string | FormData | null
- authentication?: CoreoAuthToken | false - If false, then no authentication header is set (even if the user is logged in).
If set to a CoreoAuthToken, this token will be used again regardless of the user's logged in token. If authentication` is not supplied