@one-profile/core v0.8.5
one-profile-core
Core package for one profile application
Installation
yarn
yarn add @one-profile/corenpm
npm install @one-profile/coreAPIs
oneProfileSetup
oneProfileSetup is the bootstrap API that will help you to expose your application/parcel to OneProfile ecosystem
import React from "react";
import Root from "./root.component";
import { oneProfileSetup } from "@one-profile/core";
const profileSetup = oneProfileSetup(Root);
export const { bootstrap, mount, unmount, config } = profileSetup;arguments
rootComponent: React.FunctionComponent<any>
React root functional component that is mounted into OneProfile
config: OneProfileSetupConfig (optional)
activationFn: Promise<boolean>A function that decides whether to activate the current application. Expected to return a promise of boolean to be used in one profile initialisation. Function acceptsaccessTokenand current user's oauthclaimdetails
import {UserClaims} from "@okta/okta-auth-js";
import {User} from "@one-profile/core";
function activateProfile(accessToken, currentUser: User & UserClaims) {
return new Promise<boolean>((resolve) =>
makeSomeExternalCall(accessToken, currentUser).then((result) => {
if (result == "success" && currentUser.homeOffice.countryIsoCode == "IND") {
resolve(true);
} else {
resolve(false);
}
})
);
}
//...
//...
//some business logic in between
//...
//...
const profileSetup = oneProfileSetup(Root, {
activationFn: activateProfile,
});External APIs
users.getMe
users.getMe is the users API that will expose current logged-in user
import React from "react";
import { oneProfileSetup, users } from "@one-profile/core";
function someFunctionRequireCurrentUser(){
// get access token either using context or props from root component
users.getMe(accessToken).then((user:User) => {
// user data
});
}arguments
accessToken (required)
accessToken used to authorise the getUser API request
response
User
{
name: string;
email: string;
grade: {
name: string;
}
role: {
name: string;
}
department: {
id: string;
name: string;
}
homeOffice: {
name: string;
countryIsoCode: string;
country: string;
locationCode: string;
}
workingOffice: {
name: string;
countryIsoCode: string;
country: string;
locationCode: string;
};
}error data (refer ResponseError)
{
message: string;
}Error Handling
responseError
Response Error is thrown which can be caught in the API's promise catch mechanism
Usage:
import { ResponseError } from "@one-profile/core";
api.then(console.log).catch((error: ResponseError) => {
if (error.status == 404) {
//404 or 500
console.log(error.data);
}
});Jest Setup
Make sure you include the following line in jest setup. Make sure you install regenerator-runtime package
import 'regenerator-runtime/runtime';1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago