Skip to content

Commit 5933bef

Browse files
authored
Moving services to shared library (#137)
* Auth, auth-resolver, custom-icon and store service were moved to shared library to be used by other applications * App-config service was split into shared reusable and app specific part
1 parent 7653fef commit 5933bef

File tree

29 files changed

+147
-116
lines changed

29 files changed

+147
-116
lines changed

apps/admin-gui/src/app/app.component.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { Component, HostListener, OnInit } from '@angular/core';
2-
import { AuthResolverService } from './core/services/common/auth-resolver.service';
3-
import { AuthService } from './core/services/common/auth.service';
42
import { CacheHelperService } from './core/services/common/cache-helper.service';
5-
import { AuthzService } from '@perun-web-apps/perun/services';
3+
import { AuthzService, AuthResolverService, AuthService, StoreService } from '@perun-web-apps/perun/services';
64
import { PerunPrincipal } from '@perun-web-apps/perun/openapi';
75
import { environment } from '../environments/environment';
8-
import { StoreService } from './core/services/common/store.service';
96

107
@Component({
118
selector: 'app-root',

apps/admin-gui/src/app/app.module.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@ import {CoreModule} from './core/core.module';
1313
import {RouteReuseStrategy} from '@angular/router';
1414
import {CacheRouteReuseStrategy} from './core/services/common/cache-route-reuse-strategy';
1515
import {MatIconModule} from '@angular/material';
16-
import {CustomIconService} from './core/services/api/custom-icon.service';
16+
import {CustomIconService} from '@perun-web-apps/perun/services';
1717
import { PERUN_API_SERVICE } from '@perun-web-apps/perun/tokens';
1818
import { ApiService } from './core/services/api/api.service';
19-
import { AppConfigService } from './core/services/common/app-config.service';
19+
import { AdminGuiConfigService } from './core/services/common/admin-gui-config.service';
2020
// @ts-ignore
2121
import { ApiModule, Configuration, ConfigurationParameters } from '@perun-web-apps/perun/openapi';
2222
// @ts-ignore
23-
import { ApiConfiguration } from '@perun-web-apps/perun/openapi';
24-
import { StoreService } from './core/services/common/store.service';
23+
import { StoreService } from '@perun-web-apps/perun/services';
2524
import { ApiInterceptor } from './core/services/api/ApiInterceptor';
2625

2726

@@ -49,7 +48,7 @@ export function apiConfigFactory(store: StoreService): Configuration {
4948
return new Configuration(params);
5049
}
5150

52-
const loadConfigs = (appConfig: AppConfigService) => {
51+
const loadConfigs = (appConfig: AdminGuiConfigService) => {
5352
return () => {
5453
return appConfig.loadConfigs();
5554
};
@@ -78,12 +77,12 @@ const loadConfigs = (appConfig: AppConfigService) => {
7877
ApiModule
7978
],
8079
providers: [
81-
AppConfigService,
80+
AdminGuiConfigService,
8281
{
8382
provide: APP_INITIALIZER,
8483
useFactory: loadConfigs,
8584
multi: true,
86-
deps: [AppConfigService]
85+
deps: [AdminGuiConfigService]
8786
},
8887
// {
8988
// provide: ApiConfiguration,

apps/admin-gui/src/app/core/core.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {NgModule} from '@angular/core';
22
import {CommonModule} from '@angular/common';
3-
import {AuthService} from './services/common/auth.service';
3+
import {AuthService} from '@perun-web-apps/perun/services';
44
import {AuthCallbackComponent} from './components/auth-callback/auth-callback.component';
55

66
@NgModule({

apps/admin-gui/src/app/core/services/api/ApiInterceptor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { Injectable } from '@angular/core';
22
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
33
import { Observable, throwError } from 'rxjs';
44
import { tap } from 'rxjs/operators';
5-
import { AuthService } from '../common/auth.service';
5+
import { AuthService } from '@perun-web-apps/perun/services';
66
import { ApiRequestConfigurationService } from './api-request-configuration.service';
77
import { NotificatorService } from '../common/notificator.service';
88
import { RPCError } from '@perun-web-apps/perun/models';
9-
import { StoreService } from '../common/store.service';
9+
import { StoreService } from '@perun-web-apps/perun/services';
1010

1111
@Injectable()
1212
export class ApiInterceptor implements HttpInterceptor {

apps/admin-gui/src/app/core/services/api/api.service.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
33
import {Observable, throwError} from 'rxjs';
44
import {catchError} from 'rxjs/operators';
55
import {NotificatorService} from '../common/notificator.service';
6-
import {AuthService} from '../common/auth.service';
7-
import { PerunApiService } from '@perun-web-apps/perun/services';
6+
import {AuthService, PerunApiService, StoreService} from '@perun-web-apps/perun/services';
87
import { RPCError } from '@perun-web-apps/perun/models';
9-
import { StoreService } from '../common/store.service';
108

119
@Injectable({
1210
providedIn: 'root'
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import { Injectable } from '@angular/core';
2+
import {
3+
AppConfigService,
4+
ColorConfig,
5+
EntityColorConfig
6+
} from '@perun-web-apps/perun/services';
7+
8+
9+
@Injectable({
10+
providedIn: 'root'
11+
})
12+
export class AdminGuiConfigService {
13+
14+
constructor(private appConfigService:AppConfigService) {}
15+
16+
entityColorConfigs: EntityColorConfig[] = [
17+
{
18+
entity: 'vo',
19+
configValue: 'vo_color',
20+
cssVariable: '--vo-color'
21+
},
22+
{
23+
entity: 'group',
24+
configValue: 'group_color',
25+
cssVariable: '--group-color'
26+
},
27+
{
28+
entity: 'user',
29+
configValue: 'user_color',
30+
cssVariable: '--user-color'
31+
},
32+
{
33+
entity: 'member',
34+
configValue: 'member_color',
35+
cssVariable: '--member-color'
36+
},
37+
{
38+
entity: 'facility',
39+
configValue: 'facility_color',
40+
cssVariable: '--facility-color'
41+
},
42+
{
43+
entity: 'resource',
44+
configValue: 'resource_color',
45+
cssVariable: '--resource-color'
46+
},
47+
{
48+
entity: 'admin',
49+
configValue: 'admin_color',
50+
cssVariable: '--admin-color'
51+
}
52+
];
53+
54+
colorConfigs: ColorConfig[] = [
55+
{
56+
configValue: 'sidemenu_hover_color',
57+
cssVariable: '--side-root-item-hover'
58+
},
59+
{
60+
configValue: 'sidemenu_root_active_color',
61+
cssVariable: '--side-root-item-active'
62+
},
63+
{
64+
configValue: 'sidemenu-link-active',
65+
cssVariable: '--side-link-active'
66+
},
67+
{
68+
configValue: 'sidemenu-link-hover',
69+
cssVariable: '--side-link-hover'
70+
}
71+
];
72+
73+
loadConfigs(): Promise<void> {
74+
return this.appConfigService.loadAppDefaultConfig()
75+
.then(() => this.appConfigService.loadAppInstanceConfig())
76+
.then(() => this.appConfigService.initializeColors(this.entityColorConfigs, this.colorConfigs))
77+
.then(() => this.appConfigService.authenticateUser())
78+
.then(() => this.appConfigService.loadPrincipal());
79+
}
80+
}

apps/admin-gui/src/app/main-menu-page/main-menu-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component, OnInit} from '@angular/core';
22
import {SideMenuService} from '../core/services/common/side-menu.service';
3-
import {AuthResolverService} from '../core/services/common/auth-resolver.service';
3+
import {AuthResolverService} from '@perun-web-apps/perun/services';
44

55
@Component({
66
selector: 'app-main-menu-page',

apps/admin-gui/src/app/shared/components/user-detail-page/user-groups/user-groups.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, HostBinding, OnInit } from '@angular/core';
22
import { MembersService, UsersService } from '@perun-web-apps/perun/services';
3-
import { StoreService } from '../../../../core/services/common/store.service';
3+
import { StoreService } from '@perun-web-apps/perun/services';
44
import { Group, GroupsManagerService, PerunPrincipal, Vo } from '@perun-web-apps/perun/openapi';
55

66
@Component({

apps/admin-gui/src/app/shared/components/user-detail-page/user-organizations/user-organizations.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Component, HostBinding, OnInit } from '@angular/core';
22
import { UsersService } from '@perun-web-apps/perun/services';
33
import { PerunPrincipal, Vo } from '@perun-web-apps/perun/openapi';
4-
import { AuthResolverService } from '../../../../core/services/common/auth-resolver.service';
5-
import { StoreService } from '../../../../core/services/common/store.service';
4+
import { AuthResolverService } from '@perun-web-apps/perun/services';
5+
import { StoreService } from '@perun-web-apps/perun/services';
66

77
@Component({
88
selector: 'app-user-organizations',

apps/admin-gui/src/app/shared/components/user-detail-page/user-settings/user-settings-attributes/user-settings-attributes.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { SelectionModel } from '@angular/cdk/collections';
88
import { CreateAttributeDialogComponent } from '../../../dialogs/create-attribute-dialog/create-attribute-dialog.component';
99
import { filterCoreAttributes } from '@perun-web-apps/perun/utils';
1010
import { DeleteAttributeDialogComponent } from '../../../dialogs/delete-attribute-dialog/delete-attribute-dialog.component';
11-
import { StoreService } from '../../../../../core/services/common/store.service';
11+
import { StoreService } from '@perun-web-apps/perun/services';
1212
import { Attribute, AttributesManagerService } from '@perun-web-apps/perun/openapi';
1313

1414
@Component({

apps/admin-gui/src/app/shared/components/user-profile/user-profile.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Component, OnInit } from '@angular/core';
2-
import { AuthResolverService } from '../../../core/services/common/auth-resolver.service';
2+
import { AuthResolverService } from '@perun-web-apps/perun/services';
33
import { SideMenuService } from '../../../core/services/common/side-menu.service';
44
import { UsersService } from '@perun-web-apps/perun/services';
55
import { PerunPrincipal, User } from '@perun-web-apps/perun/openapi';
6-
import { StoreService } from '../../../core/services/common/store.service';
6+
import { StoreService } from '@perun-web-apps/perun/services';
77

88
@Component({
99
selector: 'app-user-profile',

apps/admin-gui/src/app/shared/debugger-page/debugger-page.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Component, OnInit } from '@angular/core';
2-
import {AuthResolverService} from '../../core/services/common/auth-resolver.service';
2+
import {AuthResolverService} from '@perun-web-apps/perun/services';
33
import { PerunPrincipal } from '@perun-web-apps/perun/openapi';
4-
import { StoreService } from '../../core/services/common/store.service';
4+
import { StoreService } from '@perun-web-apps/perun/services';
55

66
@Component({
77
selector: 'app-debugger-page',

apps/admin-gui/src/app/shared/perun-footer/perun-footer.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Component, OnInit } from '@angular/core';
22
import { MatDialog } from '@angular/material';
33
import { ReportIssueDialogComponent } from '../components/report-issue-dialog/report-issue-dialog.component';
4-
import { StoreService } from '../../core/services/common/store.service';
4+
import { StoreService } from '@perun-web-apps/perun/services';
55

66
@Component({
77
selector: 'app-perun-footer',

apps/admin-gui/src/app/shared/perun-nav/perun-nav.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';
22
import { MatSidenav } from '@angular/material/sidenav';
33
import { PerunPrincipal } from '@perun-web-apps/perun/openapi';
4-
import { StoreService } from '../../core/services/common/store.service';
5-
import { AuthService } from '../../core/services/common/auth.service';
4+
import { StoreService } from '@perun-web-apps/perun/services';
5+
import { AuthService } from '@perun-web-apps/perun/services';
66
import { MatDialog } from '@angular/material';
77
import { ShowNotificationHistoryDialogComponent } from '../components/dialogs/show-notification-history-dialog/show-notification-history-dialog.component';
88
import { NotificationStorageService } from '../../core/services/common/notification-storage.service';

apps/admin-gui/src/app/shared/side-menu/side-menu-item.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Injectable } from '@angular/core';
22
import { TranslateService } from '@ngx-translate/core';
33
import { EntityMenuLink, SideMenuItem } from './side-menu.component';
4-
import { AuthResolverService } from '../../core/services/common/auth-resolver.service';
4+
import { AuthResolverService } from '@perun-web-apps/perun/services';
55
import { Facility, Group, Resource, RichMember, User, Vo } from '@perun-web-apps/perun/openapi';
66
import { parseFullName } from '@perun-web-apps/perun/utils';
7-
import { StoreService } from '../../core/services/common/store.service';
7+
import { StoreService } from '@perun-web-apps/perun/services';
88

99
@Injectable({
1010
providedIn: 'root'

apps/admin-gui/src/app/shared/side-menu/side-menu-item/side-menu-item.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {SideMenuItem} from '../side-menu.component';
33
import {NavigationEnd, Router} from '@angular/router';
44
import {openClose, rollInOut} from '../../animations/Animations';
55
import {MatSidenav} from '@angular/material/sidenav';
6-
import { StoreService } from '../../../core/services/common/store.service';
6+
import { StoreService } from '@perun-web-apps/perun/services';
77

88
@Component({
99
selector: 'app-side-menu-item',

apps/admin-gui/src/app/shared/side-menu/side-menu-root-item/side-menu-root-item.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {NavigationEnd, Router} from '@angular/router';
33
import {SideMenuItem} from '../side-menu.component';
44
import { openClose, rollInOut } from '../../animations/Animations';
55
import {MatSidenav} from '@angular/material/sidenav';
6-
import { StoreService } from '../../../core/services/common/store.service';
6+
import { StoreService } from '@perun-web-apps/perun/services';
77

88
@Component({
99
selector: 'app-side-menu-root-item',

apps/admin-gui/src/app/shared/side-menu/side-menu.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import {Component, HostListener, Input, OnInit} from '@angular/core';
1+
import {Component, Input, OnInit} from '@angular/core';
22
import {MatSidenav} from '@angular/material/sidenav';
33
import {SideMenuService} from '../../core/services/common/side-menu.service';
44
import {AppComponent} from '../../app.component';
55
import {SideMenuItemService} from './side-menu-item.service';
6-
import {AuthResolverService} from '../../core/services/common/auth-resolver.service';
6+
import {AuthResolverService} from '@perun-web-apps/perun/services';
77
import {rollInOut} from '../animations/Animations';
8-
import { StoreService } from '../../core/services/common/store.service';
8+
import { StoreService } from '@perun-web-apps/perun/services';
99

1010
@Component({
1111
selector: 'app-side-menu',

apps/admin-gui/src/app/vos/pages/vo-detail-page/vo-overview/vo-overview.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import {Component, HostBinding, OnInit} from '@angular/core';
1+
import {Component, OnInit} from '@angular/core';
22
import {MenuItem} from '../../../../shared/models/MenuItem';
33
import {InviteMemberDialogComponent} from '../../../../shared/components/dialogs/invite-member-dialog/invite-member-dialog.component';
44
import {MatDialog} from '@angular/material/dialog';
55
import {SideMenuService} from '../../../../core/services/common/side-menu.service';
66
import {ActivatedRoute, Router} from '@angular/router';
7-
import {AuthResolverService} from '../../../../core/services/common/auth-resolver.service';
7+
import {AuthResolverService} from '@perun-web-apps/perun/services';
88
import { VoService } from '@perun-web-apps/perun/services';
99
import { Vo } from '@perun-web-apps/perun/openapi';
1010

apps/admin-gui/src/app/vos/pages/vo-detail-page/vo-resources/vo-resources-states/vo-resources-states.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component, HostBinding, OnInit} from '@angular/core';
22
import {ActivatedRoute} from '@angular/router';
3-
import {CustomIconService} from '../../../../../core/services/api/custom-icon.service';
3+
import {CustomIconService} from '@perun-web-apps/perun/services';
44
import { PropagationStatsReaderService } from '@perun-web-apps/perun/services';
55
import { ResourceState } from '@perun-web-apps/perun/models';
66

apps/admin-gui/src/app/vos/pages/vo-select-page/vo-select-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {SideMenuService} from '../../../core/services/common/side-menu.service';
33
import { VoService } from '@perun-web-apps/perun/services';
44
import { Vo } from '@perun-web-apps/perun/openapi';
55
import { getRecentlyVisited, getRecentlyVisitedIds } from '@perun-web-apps/perun/utils';
6-
import { AuthResolverService } from '../../../core/services/common/auth-resolver.service';
6+
import { AuthResolverService } from '@perun-web-apps/perun/services';
77
import { MatDialog } from '@angular/material';
88
import { RemoveVoDialogComponent } from '../../../shared/components/dialogs/remove-vo-dialog/remove-vo-dialog.component';
99
import { SelectionModel } from '@angular/cdk/collections';

libs/perun/services/src/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,11 @@ export { ServiceService } from './lib/service.service';
1111
export { UsersService } from './lib/users.service';
1212
export { VoService } from './lib/vo.service';
1313
export { ExtSourceService } from './lib/ext-source.service';
14+
export { AuthResolverService } from './lib/auth-resolver.service';
15+
export { AuthService } from './lib/auth.service';
16+
export { StoreService } from './lib/store.service';
17+
export { AppConfigService } from './lib/app-config.service';
18+
export { ColorConfig } from './lib/app-config.service';
19+
export { EntityColorConfig } from './lib/app-config.service';
20+
export { CustomIconService } from './lib/custom-icon.service';
21+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { TestBed } from '@angular/core/testing';
2+
3+
import { AppConfigService } from './app-config.service';
4+
5+
describe('AppConfigService', () => {
6+
beforeEach(() => TestBed.configureTestingModule({}));
7+
8+
it('should be created', () => {
9+
const service: AppConfigService = TestBed.get(AppConfigService);
10+
expect(service).toBeTruthy();
11+
});
12+
});

0 commit comments

Comments
 (0)