ng-smart-on-fhir
Version:
[](https://srdc.com.tr/en)
29 lines • 4.12 kB
JavaScript
import { Router } from "@angular/router";
import { inject } from "@angular/core";
import { SmartAuthService } from "../../services/smart-auth.service";
import { SmartOnFhirService } from "../../services/smart-on-fhir.service";
import { ShlService } from "../../services/shl.service";
export const redirectUnauthorizedToLogin = async function (route, state) {
const router = inject(Router);
const auth = inject(SmartAuthService);
const sof = inject(SmartOnFhirService);
const shl = inject(ShlService);
if (auth.isLoggedIn()) {
return true;
}
try {
const context = auth.restoreSession();
if (context?.shc) {
await Promise.all(context.shc.map(async (shc) => sof.importSHCData(await shl.handleShc(shc))));
}
await auth.start();
return auth.isLoggedIn();
}
catch (err) { }
if (auth.isLoggedIn()) {
return true;
}
await router.navigate(['/login']);
return false;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tbG9naW4tZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1vbi1maGlyL3NyYy9saWIvcm91dGVzL2d1YXJkL3JlZGlyZWN0LXRvLWxvZ2luLWd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQWtCLEtBQUssV0FBVyxLQUFLLEVBQUUsS0FBSztJQUNwRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFBQyxPQUFPLElBQUksQ0FBQztJQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3JDLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4RyxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQSxDQUFDO0lBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFBQyxPQUFPLElBQUksQ0FBQztJQUFDLENBQUM7SUFDdkMsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNqQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2FuQWN0aXZhdGVGbiwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7aW5qZWN0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1NtYXJ0QXV0aFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zbWFydC1hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTbWFydE9uRmhpclNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zbWFydC1vbi1maGlyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaGxTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2hsLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjb25zdCByZWRpcmVjdFVuYXV0aG9yaXplZFRvTG9naW46IENhbkFjdGl2YXRlRm4gPSBhc3luYyBmdW5jdGlvbiAocm91dGUsIHN0YXRlKSB7XHJcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgY29uc3QgYXV0aCA9IGluamVjdChTbWFydEF1dGhTZXJ2aWNlKTtcclxuICBjb25zdCBzb2YgPSBpbmplY3QoU21hcnRPbkZoaXJTZXJ2aWNlKTtcclxuICBjb25zdCBzaGwgPSBpbmplY3QoU2hsU2VydmljZSlcclxuICBpZiAoYXV0aC5pc0xvZ2dlZEluKCkpIHsgcmV0dXJuIHRydWU7IH1cclxuICB0cnkge1xyXG4gICAgY29uc3QgY29udGV4dCA9IGF1dGgucmVzdG9yZVNlc3Npb24oKVxyXG4gICAgaWYgKGNvbnRleHQ/LnNoYykge1xyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChjb250ZXh0LnNoYy5tYXAoYXN5bmMgKHNoYzogc3RyaW5nKSA9PiBzb2YuaW1wb3J0U0hDRGF0YShhd2FpdCBzaGwuaGFuZGxlU2hjKHNoYykpKSlcclxuICAgIH1cclxuICAgIGF3YWl0IGF1dGguc3RhcnQoKTtcclxuICAgIHJldHVybiBhdXRoLmlzTG9nZ2VkSW4oKTtcclxuICB9IGNhdGNoIChlcnIpIHt9XHJcbiAgaWYgKGF1dGguaXNMb2dnZWRJbigpKSB7IHJldHVybiB0cnVlOyB9XHJcbiAgYXdhaXQgcm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbiJdfQ==