tru.ID SDK for React Native

The only purpose of the SDK is to force the data cellular connectivity prior to call a public URL, and will return the following JSON response
- Success
When the data connectivity has been achieved and a response has been received from the url endpoint
{
"http_status": string, // HTTP status related to the url
"response_body" : { // optional depending on the HTTP status
... // the response body of the opened url
... // see API doc for /device_ip and /redirect
},
"debug" : {
"device_info": string,
"url_trace" : string
}
}
- Error
When data connectivity is not available and/or an internal SDK error occurred
{
"error" : string,
"error_description": string,
"debug": {
"device_info": string,
"url_trace" : string
}
}
Potential error codes: sdk_no_data_connectivity
, sdk_connection_error
, sdk_redirect_error
, sdk_error
.
Installation
npm install @tru_id/tru-sdk-react-native
For Android, add the following to your application's build.gradle
:
maven {
url "https://gitlab.com/api/v4/projects/22035475/packages/maven"
}
Compatibility
Usage
import TruSdkReactNative, {
ReachabilityResponse,
CheckResponse,
CheckErrorBody,
CheckSuccessBody,
ApiError,
ReachabilityBody,
ReachabilityResponseBody,
} from '@tru_id/tru-sdk-react-native';
const token = ...
if (token) {
const res =
await TruSdkReactNative.openWithDataCellularAndAccessToken<ReachabilityResponse>(
'https://eu.api.tru.id/coverage/v0.1/device_ip',
true,
token
);
if ('error' in res) {
} else if ('http_status' in res) {
const httpStatus = success.http_status;
if (httpStatus === 200 && res.response_body !== undefined) {
const body = res.response_body as ReachabilityBody
} else if (httpStatus === 400 && res.response_body !== undefined) {
const body = res.response_body as ApiError;
} else if (httpStatus === 412 && res.response_body !== undefined) {
const body = res.response_body as ApiError;
} else if (res.response_body !== undefined) {
const body = res.response_body as ApiError;
}
}
}
import TruSdkReactNative, {
ReachabilityResponse,
CheckResponse,
CheckErrorBody,
CheckSuccessBody,
ApiError,
ReachabilityBody,
ReachabilityResponseBody,
} from '@tru_id/tru-sdk-react-native';
const res = await TruSdkReactNative.openWithDataCellular<CheckResponse>(checkUrl);
if ('error' in res) {
} else if ('http_status' in res) {
const httpStatus = res.http_status;
if (httpStatus === 200 && res.response_body !== undefined) {
if ('error' in res.response_body) {
const body = res.response_body as CheckErrorBody;
} else {
const body = res.response_body as CheckSuccessBody;
}
} else if (httpStatus == 400 && res.response_body !== undefined) {
const body = res.response_body as ApiError;
} else if (httpStatus === 412 && res.response_body !== undefined) {
const body = res.response_body as ApiError;
} else if (res.response_body !== undefined) {
const body = res.response_body as ApiError;
}
}
Example Demo
There's an embedded example demo is located in the example
directory, see README
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
Development
Releasing
Update CHANGELOG.md
and finesse.
$ yarn run changelog
Commit the changes:
$ git commit -m 'chore(release): v{version}'
Tag:
$ git tag v{version}
Publish a new canary build to test.
$ yarn run publish:canary
Publish a full version:
$ yarn run publish:latest
Meta
Distributed under the MIT license. See LICENSE
for more information.
https://github.com/tru-ID