Skip to content

Commit 83615a1

Browse files
alisaismailativins01-4science
authored andcommitted
[CST-15073][CST-15074] Adaptation with standalone components
1 parent 214a77a commit 83615a1

63 files changed

Lines changed: 1207 additions & 782 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/app/app-routes.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import { InMemoryScrollingOptions, Route, RouterConfigOptions, } from '@angular/router';
1+
import {
2+
InMemoryScrollingOptions,
3+
Route,
4+
RouterConfigOptions,
5+
} from '@angular/router';
26

37
import { NOTIFICATIONS_MODULE_PATH } from './admin/admin-routing-paths';
48
import {
@@ -21,12 +25,8 @@ import { COLLECTION_MODULE_PATH } from './collection-page/collection-page-routin
2125
import { COMMUNITY_MODULE_PATH } from './community-page/community-page-routing-paths';
2226
import { authBlockingGuard } from './core/auth/auth-blocking.guard';
2327
import { authenticatedGuard } from './core/auth/authenticated.guard';
24-
import {
25-
groupAdministratorGuard
26-
} from './core/data/feature-authorization/feature-authorization-guard/group-administrator.guard';
27-
import {
28-
siteAdministratorGuard
29-
} from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
28+
import { groupAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/group-administrator.guard';
29+
import { siteAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
3030
import { siteRegisterGuard } from './core/data/feature-authorization/feature-authorization-guard/site-register.guard';
3131
import { endUserAgreementCurrentUserGuard } from './core/end-user-agreement/end-user-agreement-current-user.guard';
3232
import { reloadGuard } from './core/reload/reload.guard';
@@ -37,9 +37,7 @@ import { ITEM_MODULE_PATH } from './item-page/item-page-routing-paths';
3737
import { menuResolver } from './menuResolver';
3838
import { provideSuggestionNotificationsState } from './notifications/provide-suggestion-notifications-state';
3939
import { ThemedPageErrorComponent } from './page-error/themed-page-error.component';
40-
import {
41-
ThemedPageInternalServerErrorComponent
42-
} from './page-internal-server-error/themed-page-internal-server-error.component';
40+
import { ThemedPageInternalServerErrorComponent } from './page-internal-server-error/themed-page-internal-server-error.component';
4341
import { ThemedPageNotFoundComponent } from './pagenotfound/themed-pagenotfound.component';
4442
import { PROCESS_MODULE_PATH } from './process-page/process-page-routing.paths';
4543
import { provideSubmissionState } from './submission/provide-submission-state';
@@ -261,17 +259,17 @@ export const APP_ROUTES: Route[] = [
261259
},
262260
{
263261
path: 'external-login/:token',
264-
loadChildren: () => import('./external-login-page/external-login-routes').then((m) => m.ROUTES)
262+
loadChildren: () => import('./external-login-page/external-login-routes').then((m) => m.ROUTES),
265263
},
266264
{
267265
path: 'review-account/:token',
268266
loadChildren: () => import('./external-login-review-account-info-page/external-login-review-account-info-page-routes')
269-
.then((m) => m.ROUTES)
267+
.then((m) => m.ROUTES),
270268
},
271269
{
272270
path: 'email-confirmation',
273271
loadChildren: () => import('./external-login-email-confirmation-page/external-login-email-confirmation-page-routes')
274-
.then((m) => m.ROUTES)
272+
.then((m) => m.ROUTES),
275273
},
276274
{ path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent },
277275
],

src/app/core/auth/auth-request.service.ts

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
11
import { Observable } from 'rxjs';
2-
import { distinctUntilChanged, filter, map, switchMap, take, tap, } from 'rxjs/operators';
3-
4-
import { isNotEmpty, isNotEmptyOperator } from '../../shared/empty.util';
2+
import {
3+
distinctUntilChanged,
4+
filter,
5+
map,
6+
switchMap,
7+
take,
8+
tap,
9+
} from 'rxjs/operators';
10+
11+
import {
12+
isNotEmpty,
13+
isNotEmptyOperator,
14+
} from '../../shared/empty.util';
515
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
6-
import { HALEndpointService } from '../shared/hal-endpoint.service';
7-
import { RequestService } from '../data/request.service';
8-
import { DeleteRequest, GetRequest, PostRequest } from '../data/request.models';
9-
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
10-
import { getFirstCompletedRemoteData } from '../shared/operators';
1116
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
1217
import { RemoteData } from '../data/remote-data';
18+
import {
19+
DeleteRequest,
20+
GetRequest,
21+
PostRequest,
22+
} from '../data/request.models';
23+
import { RequestService } from '../data/request.service';
1324
import { RestRequest } from '../data/rest-request.model';
25+
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
26+
import { HALEndpointService } from '../shared/hal-endpoint.service';
27+
import { NoContent } from '../shared/NoContent.model';
28+
import { getFirstCompletedRemoteData } from '../shared/operators';
29+
import { sendRequest } from '../shared/request.operators';
1430
import { URLCombiner } from '../url-combiner/url-combiner';
1531
import { AuthStatus } from './models/auth-status.model';
16-
import { ShortLivedToken } from './models/short-lived-token.model';
1732
import { MachineToken } from './models/machine-token.model';
18-
import { NoContent } from '../shared/NoContent.model';
19-
import { sendRequest } from '../shared/request.operators';
33+
import { ShortLivedToken } from './models/short-lived-token.model';
2034

2135
/**
2236
* Abstract service to send authentication requests
@@ -144,7 +158,7 @@ export abstract class AuthRequestService {
144158
map((href: string) => new URLCombiner(href, this.machinetokenEndpoint).toString()),
145159
map((endpointURL: string) => new PostRequest(this.requestService.generateRequestId(), endpointURL)),
146160
tap((request: RestRequest) => this.requestService.send(request)),
147-
switchMap((request: RestRequest) => this.rdbService.buildFromRequestUUID<MachineToken>(request.uuid))
161+
switchMap((request: RestRequest) => this.rdbService.buildFromRequestUUID<MachineToken>(request.uuid)),
148162
);
149163
}
150164

src/app/core/auth/auth.service.ts

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,33 @@
11
import { HttpHeaders } from '@angular/common/http';
2-
import { Inject, Injectable, Optional, } from '@angular/core';
2+
import {
3+
Inject,
4+
Injectable,
5+
Optional,
6+
} from '@angular/core';
37
import { Router } from '@angular/router';
4-
import { select, Store, } from '@ngrx/store';
8+
import {
9+
select,
10+
Store,
11+
} from '@ngrx/store';
512
import { TranslateService } from '@ngx-translate/core';
613
import { CookieAttributes } from 'js-cookie';
7-
import { Observable, of as observableOf, } from 'rxjs';
8-
import { filter, map, startWith, switchMap, take, } from 'rxjs/operators';
14+
import {
15+
Observable,
16+
of as observableOf,
17+
} from 'rxjs';
18+
import {
19+
filter,
20+
map,
21+
startWith,
22+
switchMap,
23+
take,
24+
} from 'rxjs/operators';
925

1026
import { environment } from '../../../environments/environment';
11-
import { REQUEST, RESPONSE, } from '../../../express.tokens';
27+
import {
28+
REQUEST,
29+
RESPONSE,
30+
} from '../../../express.tokens';
1231
import { AppState } from '../../app.reducer';
1332
import {
1433
hasNoValue,
@@ -22,7 +41,10 @@ import {
2241
import { NotificationsService } from '../../shared/notifications/notifications.service';
2342
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
2443
import { followLink } from '../../shared/utils/follow-link-config.model';
25-
import { buildPaginatedList, PaginatedList, } from '../data/paginated-list.model';
44+
import {
45+
buildPaginatedList,
46+
PaginatedList,
47+
} from '../data/paginated-list.model';
2648
import { RemoteData } from '../data/remote-data';
2749
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
2850
import { EPersonDataService } from '../eperson/eperson-data.service';
@@ -32,17 +54,16 @@ import { CookieService } from '../services/cookie.service';
3254
import { HardRedirectService } from '../services/hard-redirect.service';
3355
import { RouteService } from '../services/route.service';
3456
import {
35-
getAuthenticatedUserId,
36-
getAuthenticationToken,
37-
getExternalAuthCookieStatus,
38-
getRedirectUrl,
39-
isAuthenticated,
40-
isAuthenticatedLoaded,
41-
isIdle,
42-
isTokenRefreshing
43-
} from './selectors';
44-
import { getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData, } from '../shared/operators';
57+
NativeWindowRef,
58+
NativeWindowService,
59+
} from '../services/window.service';
60+
import { NoContent } from '../shared/NoContent.model';
61+
import {
62+
getAllSucceededRemoteDataPayload,
63+
getFirstCompletedRemoteData,
64+
} from '../shared/operators';
4565
import { PageInfo } from '../shared/page-info.model';
66+
import { URLCombiner } from '../url-combiner/url-combiner';
4667
import {
4768
CheckAuthenticationTokenAction,
4869
RefreshTokenAction,
@@ -55,11 +76,21 @@ import {
5576
import { AuthRequestService } from './auth-request.service';
5677
import { AuthMethod } from './models/auth.method';
5778
import { AuthStatus } from './models/auth-status.model';
58-
import { AuthTokenInfo, TOKENITEM, } from './models/auth-token-info.model';
59-
import { NoContent } from '../shared/NoContent.model';
60-
import { URLCombiner } from '../url-combiner/url-combiner';
79+
import {
80+
AuthTokenInfo,
81+
TOKENITEM,
82+
} from './models/auth-token-info.model';
6183
import { MachineToken } from './models/machine-token.model';
62-
import { NativeWindowRef, NativeWindowService } from '../services/window.service';
84+
import {
85+
getAuthenticatedUserId,
86+
getAuthenticationToken,
87+
getExternalAuthCookieStatus,
88+
getRedirectUrl,
89+
isAuthenticated,
90+
isAuthenticatedLoaded,
91+
isIdle,
92+
isTokenRefreshing,
93+
} from './selectors';
6394

6495
export const LOGIN_ROUTE = '/login';
6596
export const LOGOUT_ROUTE = '/logout';

src/app/core/auth/models/machine-token.model.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
import { autoserialize, autoserializeAs, deserialize } from 'cerialize';
1+
import {
2+
autoserialize,
3+
autoserializeAs,
4+
deserialize,
5+
} from 'cerialize';
26

37
import { typedObject } from '../../cache/builders/build-decorators';
48
import { CacheableObject } from '../../cache/cacheable-object.model';
5-
import { excludeFromEquals } from '../../utilities/equals.decorators';
6-
import { ResourceType } from '../../shared/resource-type';
79
import { HALLink } from '../../shared/hal-link.model';
10+
import { ResourceType } from '../../shared/resource-type';
11+
import { excludeFromEquals } from '../../utilities/equals.decorators';
812
import { MACHINE_TOKEN } from './machine-token.resource-type';
913

1014
/**

src/app/core/data/eperson-registration.service.ts

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
1-
import { HttpHeaders, HttpParams, } from '@angular/common/http';
1+
import {
2+
HttpHeaders,
3+
HttpParams,
4+
} from '@angular/common/http';
25
import { Injectable } from '@angular/core';
3-
import { RequestService } from './request.service';
4-
import { HALEndpointService } from '../shared/hal-endpoint.service';
5-
import { GetRequest, PatchRequest, PostRequest } from './request.models';
6+
import { Operation } from 'fast-json-patch';
67
import { Observable } from 'rxjs';
7-
import { filter, find, map, } from 'rxjs/operators';
8-
9-
import { hasValue, isNotEmpty, } from '../../shared/empty.util';
8+
import {
9+
filter,
10+
find,
11+
map,
12+
} from 'rxjs/operators';
13+
14+
import {
15+
hasValue,
16+
isNotEmpty,
17+
} from '../../shared/empty.util';
1018
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
1119
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
1220
import { GenericConstructor } from '../shared/generic-constructor';
21+
import { HALEndpointService } from '../shared/hal-endpoint.service';
22+
import { NoContent } from '../shared/NoContent.model';
1323
import { getFirstCompletedRemoteData } from '../shared/operators';
1424
import { Registration } from '../shared/registration.model';
1525
import { ResponseParsingService } from './parsing.service';
1626
import { RegistrationResponseParsingService } from './registration-response-parsing.service';
1727
import { RemoteData } from './remote-data';
18-
import { Operation } from 'fast-json-patch';
19-
import { NoContent } from '../shared/NoContent.model';
28+
import {
29+
GetRequest,
30+
PatchRequest,
31+
PostRequest,
32+
} from './request.models';
33+
import { RequestService } from './request.service';
2034

2135
@Injectable({
2236
providedIn: 'root',
@@ -116,10 +130,10 @@ export class EpersonRegistrationService {
116130
map((rd) => {
117131
if (rd.hasSucceeded && hasValue(rd.payload)) {
118132
return Object.assign(rd, { payload: Object.assign(new Registration(), {
119-
email: rd.payload.email,
120-
token: token,
121-
user: rd.payload.user,
122-
}) });
133+
email: rd.payload.email,
134+
token: token,
135+
user: rd.payload.user,
136+
}) });
123137
} else {
124138
return rd;
125139
}
@@ -144,7 +158,7 @@ export class EpersonRegistrationService {
144158
Object.assign(request, {
145159
getResponseParser(): GenericConstructor<ResponseParsingService> {
146160
return RegistrationResponseParsingService;
147-
}
161+
},
148162
});
149163
this.requestService.send(request, true);
150164
});
@@ -186,7 +200,7 @@ export class EpersonRegistrationService {
186200
let operations = [];
187201
if (values.length > 0 && hasValue(field) ) {
188202
operations = [{
189-
op: operator, path: `/${field}`, value: values
203+
op: operator, path: `/${field}`, value: values,
190204
}];
191205
}
192206

src/app/core/eperson/eperson-data.service.spec.ts

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2-
import { fakeAsync, TestBed, tick, waitForAsync, } from '@angular/core/testing';
2+
import {
3+
fakeAsync,
4+
TestBed,
5+
tick,
6+
waitForAsync,
7+
} from '@angular/core/testing';
38
import { Store } from '@ngrx/store';
4-
import { MockStore, provideMockStore, } from '@ngrx/store/testing';
5-
import { compare, Operation, } from 'fast-json-patch';
9+
import {
10+
MockStore,
11+
provideMockStore,
12+
} from '@ngrx/store/testing';
13+
import {
14+
compare,
15+
Operation,
16+
} from 'fast-json-patch';
617
import { cold } from 'jasmine-marbles';
718
import { of as observableOf } from 'rxjs';
819

@@ -13,26 +24,41 @@ import {
1324
import { getMockRemoteDataBuildServiceHrefMap } from '../../shared/mocks/remote-data-build.service.mock';
1425
import { getMockRequestService } from '../../shared/mocks/request.service.mock';
1526
import { NotificationsService } from '../../shared/notifications/notifications.service';
16-
import { createNoContentRemoteDataObject$, createSuccessfulRemoteDataObject$, } from '../../shared/remote-data.utils';
17-
import { EPersonMock, EPersonMock2, } from '../../shared/testing/eperson.mock';
27+
import {
28+
createNoContentRemoteDataObject$,
29+
createSuccessfulRemoteDataObject$,
30+
} from '../../shared/remote-data.utils';
31+
import {
32+
EPersonMock,
33+
EPersonMock2,
34+
} from '../../shared/testing/eperson.mock';
1835
import { GroupMock } from '../../shared/testing/group-mock';
1936
import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service.stub';
2037
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
21-
import { createPaginatedList, createRequestEntry$, } from '../../shared/testing/utils.test';
38+
import {
39+
createPaginatedList,
40+
createRequestEntry$,
41+
} from '../../shared/testing/utils.test';
2242
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
2343
import { RequestParam } from '../cache/models/request-param.model';
2444
import { ObjectCacheService } from '../cache/object-cache.service';
2545
import { CoreState } from '../core-state.model';
2646
import { ChangeAnalyzer } from '../data/change-analyzer';
2747
import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service';
2848
import { FindListOptions } from '../data/find-list-options.model';
29-
import { PatchRequest, PostRequest, } from '../data/request.models';
49+
import { RemoteData } from '../data/remote-data';
50+
import {
51+
PatchRequest,
52+
PostRequest,
53+
} from '../data/request.models';
3054
import { RequestService } from '../data/request.service';
3155
import { HALEndpointService } from '../shared/hal-endpoint.service';
3256
import { Item } from '../shared/item.model';
33-
import { editEPersonSelector, EPersonDataService, } from './eperson-data.service';
57+
import {
58+
editEPersonSelector,
59+
EPersonDataService,
60+
} from './eperson-data.service';
3461
import { EPerson } from './models/eperson.model';
35-
import { RemoteData } from '../data/remote-data';
3662

3763
describe('EPersonDataService', () => {
3864
let service: EPersonDataService;

0 commit comments

Comments
 (0)