UNPKG

ng-smart-on-fhir

Version:

[![SRDC](https://www.srdc.com.tr/wp-content/uploads/2014/12/srdc-wp.png)](https://srdc.com.tr/en)

51 lines 6.68 kB
import { CallbackComponent } from "../components/callback/callback.component"; import { LaunchComponent } from "../components/launch/launch.component"; import { LoginComponent } from "../components/login/login.component"; import { ShcShlHandlerComponent } from "../components/shc-shl-handler/shc-shl-handler.component"; import { redirectUnauthorizedToLogin } from "./guard/redirect-to-login-guard"; /** * Routes wrapper to add required components to execute Smart App Launch and Login flows * @param routes - Other application routes * @param redirectTo - Redirection after login * @param method - Allowed authentication flows: launch/client(login)/both * @param redirectToLoginIfUnauthorized - If true, adds auth guards to the application components * @param enableShc - If true, offline mode is allowed using Smart Health Cards */ export const withSmartHandlerRoutes = (routes, redirectTo, method, redirectToLoginIfUnauthorized, enableShc) => { const smartRoutes = [{ path: 'callback', component: CallbackComponent, data: { redirectTo } }]; if (method !== 'client') { smartRoutes.push({ path: 'launch', component: LaunchComponent }); } if (method !== 'launch') { smartRoutes.push({ path: 'login', component: LoginComponent }); } if (enableShc) { smartRoutes.push({ path: 'shl', component: ShcShlHandlerComponent }, { path: 'shc', component: ShcShlHandlerComponent }); } return [ ...routes.map(route => { if (redirectToLoginIfUnauthorized) { route.canActivate = (route.canActivate || []).concat([redirectUnauthorizedToLogin]); } return route; }), ...smartRoutes ]; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtaGFuZGxlci1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1vbi1maGlyL3NyYy9saWIvcm91dGVzL3NtYXJ0LWhhbmRsZXItcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDL0YsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFNUU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUNqQyxDQUFDLE1BQWMsRUFBRSxVQUFrQixFQUFFLE1BQW9DLEVBQUUsNkJBQXNDLEVBQUUsU0FBbUIsRUFBRSxFQUFFO0lBQ3hJLE1BQU0sV0FBVyxHQUFXLENBQUM7WUFDM0IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixJQUFJLEVBQUUsRUFBQyxVQUFVLEVBQUM7U0FDbkIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEIsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGVBQWU7U0FDM0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDZixJQUFJLEVBQUUsT0FBTztZQUNiLFNBQVMsRUFBRSxjQUFjO1NBQzFCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNmLElBQUksRUFBRSxLQUFLO1lBQ1gsU0FBUyxFQUFFLHNCQUFzQjtTQUNsQyxFQUFFO1lBQ0QsSUFBSSxFQUFFLEtBQUs7WUFDWCxTQUFTLEVBQUUsc0JBQXNCO1NBQ2xDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxPQUFPO1FBQ0wsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksNkJBQTZCLEVBQUUsQ0FBQztnQkFDbEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQztRQUNGLEdBQUcsV0FBVztLQUNmLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JvdXRlc30gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0NhbGxiYWNrQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9jYWxsYmFjay9jYWxsYmFjay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMYXVuY2hDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2xhdW5jaC9sYXVuY2guY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TG9naW5Db21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NoY1NobEhhbmRsZXJDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL3NoYy1zaGwtaGFuZGxlci9zaGMtc2hsLWhhbmRsZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7cmVkaXJlY3RVbmF1dGhvcml6ZWRUb0xvZ2lufSBmcm9tIFwiLi9ndWFyZC9yZWRpcmVjdC10by1sb2dpbi1ndWFyZFwiO1xyXG5cclxuLyoqXHJcbiAqIFJvdXRlcyB3cmFwcGVyIHRvIGFkZCByZXF1aXJlZCBjb21wb25lbnRzIHRvIGV4ZWN1dGUgU21hcnQgQXBwIExhdW5jaCBhbmQgTG9naW4gZmxvd3NcclxuICogQHBhcmFtIHJvdXRlcyAtIE90aGVyIGFwcGxpY2F0aW9uIHJvdXRlc1xyXG4gKiBAcGFyYW0gcmVkaXJlY3RUbyAtIFJlZGlyZWN0aW9uIGFmdGVyIGxvZ2luXHJcbiAqIEBwYXJhbSBtZXRob2QgLSBBbGxvd2VkIGF1dGhlbnRpY2F0aW9uIGZsb3dzOiBsYXVuY2gvY2xpZW50KGxvZ2luKS9ib3RoXHJcbiAqIEBwYXJhbSByZWRpcmVjdFRvTG9naW5JZlVuYXV0aG9yaXplZCAtIElmIHRydWUsIGFkZHMgYXV0aCBndWFyZHMgdG8gdGhlIGFwcGxpY2F0aW9uIGNvbXBvbmVudHNcclxuICogQHBhcmFtIGVuYWJsZVNoYyAtIElmIHRydWUsIG9mZmxpbmUgbW9kZSBpcyBhbGxvd2VkIHVzaW5nIFNtYXJ0IEhlYWx0aCBDYXJkc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHdpdGhTbWFydEhhbmRsZXJSb3V0ZXM6IChyb3V0ZXM6IFJvdXRlcywgcmVkaXJlY3RUbzogc3RyaW5nLCBtZXRob2Q6ICdsYXVuY2gnIHwgJ2NsaWVudCcgfCAnYm90aCcsIHJlZGlyZWN0VG9Mb2dpbklmVW5hdXRob3JpemVkOiBib29sZWFuLCBlbmFibGVTaGM/OiBib29sZWFuKSA9PiBSb3V0ZXMgPVxyXG4gIChyb3V0ZXM6IFJvdXRlcywgcmVkaXJlY3RUbzogc3RyaW5nLCBtZXRob2Q6ICdsYXVuY2gnIHwgJ2NsaWVudCcgfCAnYm90aCcsIHJlZGlyZWN0VG9Mb2dpbklmVW5hdXRob3JpemVkOiBib29sZWFuLCBlbmFibGVTaGM/OiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBzbWFydFJvdXRlczogUm91dGVzID0gW3tcclxuICAgICAgcGF0aDogJ2NhbGxiYWNrJyxcclxuICAgICAgY29tcG9uZW50OiBDYWxsYmFja0NvbXBvbmVudCxcclxuICAgICAgZGF0YToge3JlZGlyZWN0VG99XHJcbiAgICB9XTtcclxuICAgIGlmIChtZXRob2QgIT09ICdjbGllbnQnKSB7XHJcbiAgICAgIHNtYXJ0Um91dGVzLnB1c2goe1xyXG4gICAgICAgIHBhdGg6ICdsYXVuY2gnLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGF1bmNoQ29tcG9uZW50XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBpZiAobWV0aG9kICE9PSAnbGF1bmNoJykge1xyXG4gICAgICBzbWFydFJvdXRlcy5wdXNoKHtcclxuICAgICAgICBwYXRoOiAnbG9naW4nLFxyXG4gICAgICAgIGNvbXBvbmVudDogTG9naW5Db21wb25lbnRcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGlmIChlbmFibGVTaGMpIHtcclxuICAgICAgc21hcnRSb3V0ZXMucHVzaCh7XHJcbiAgICAgICAgcGF0aDogJ3NobCcsXHJcbiAgICAgICAgY29tcG9uZW50OiBTaGNTaGxIYW5kbGVyQ29tcG9uZW50XHJcbiAgICAgIH0sIHtcclxuICAgICAgICBwYXRoOiAnc2hjJyxcclxuICAgICAgICBjb21wb25lbnQ6IFNoY1NobEhhbmRsZXJDb21wb25lbnRcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiBbXHJcbiAgICAgIC4uLnJvdXRlcy5tYXAocm91dGUgPT4ge1xyXG4gICAgICAgIGlmIChyZWRpcmVjdFRvTG9naW5JZlVuYXV0aG9yaXplZCkge1xyXG4gICAgICAgICAgcm91dGUuY2FuQWN0aXZhdGUgPSAocm91dGUuY2FuQWN0aXZhdGUgfHwgW10pLmNvbmNhdChbcmVkaXJlY3RVbmF1dGhvcml6ZWRUb0xvZ2luXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByb3V0ZVxyXG4gICAgICB9KSxcclxuICAgICAgLi4uc21hcnRSb3V0ZXNcclxuICAgIF1cclxuICB9XHJcbiJdfQ==