1
0

Request-a-copy improv: Routing and module changes

This commit is contained in:
Kim Shepherd
2025-02-13 14:58:46 +01:00
parent 4281267cb6
commit 0de6481c24
4 changed files with 61 additions and 0 deletions

View File

@@ -34,6 +34,48 @@ export function getBitstreamRequestACopyRoute(item, bitstream): { routerLink: st
},
};
}
export function getBitstreamDownloadWithAccessTokenRoute(bitstream, accessToken): { routerLink: string, queryParams: any } {
const url = new URLCombiner(getBitstreamModuleRoute(), bitstream.uuid, 'download').toString();
const options = {
routerLink: url,
queryParams: {},
};
if (hasValue(accessToken)) {
options.queryParams = { accessToken: accessToken };
}
return options;
}
/**
* Get an access token request route for a user to access approved bitstreams using a supplied access token
* @param item_uuid item UUID
* @param accessToken access token (generated by backend)
*/
export function getAccessTokenRequestRoute(item_uuid, accessToken): { routerLink: string, queryParams: any } {
const url = new URLCombiner(getItemModuleRoute(), item_uuid, getAccessByTokenModulePath()).toString();
const options = {
routerLink: url,
queryParams: {
accessToken: (hasValue(accessToken) ? accessToken : undefined),
},
};
return options;
}
/**
* Get an access token request route for a user to access approved bitstreams using a supplied access token
* @param item_uuid item UUID
* @param accessToken access token (generated by backend)
*/
export function getAccessTokenRequestFileRoute(item_uuid, accessToken): { routerLink: string, queryParams: any } {
const url = new URLCombiner(getItemModuleRoute(), item_uuid, ACCESS_BY_TOKEN_MODULE_PATH).toString();
const options = {
routerLink: url,
queryParams: {
accessToken: (hasValue(accessToken) ? accessToken : undefined),
},
};
return options;
}
export const COAR_NOTIFY_SUPPORT = 'coar-notify-support';
export const HOME_PAGE_PATH = 'home';
@@ -128,6 +170,11 @@ export function getRequestCopyModulePath() {
return `/${REQUEST_COPY_MODULE_PATH}`;
}
export const ACCESS_BY_TOKEN_MODULE_PATH = 'access-by-token';
export function getAccessByTokenModulePath() {
return `/${ACCESS_BY_TOKEN_MODULE_PATH}`;
}
export const HEALTH_PAGE_PATH = 'health';
export const SUBSCRIPTIONS_MODULE_PATH = 'subscriptions';

View File

@@ -6,11 +6,13 @@ import { itemBreadcrumbResolver } from '../core/breadcrumbs/item-breadcrumb.reso
import { dsoEditMenuResolver } from '../shared/dso-page/dso-edit-menu.resolver';
import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
import { MenuItemType } from '../shared/menu/menu-item-type.model';
import { ItemAccessByTokenPageComponent } from './access-by-token/item-access-by-token-page.component';
import { BitstreamRequestACopyPageComponent } from './bitstreams/request-a-copy/bitstream-request-a-copy-page.component';
import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component';
import { ThemedFullItemPageComponent } from './full/themed-full-item-page.component';
import { itemPageResolver } from './item-page.resolver';
import {
ITEM_ACCESS_BY_TOKEN_PATH,
ITEM_EDIT_PATH,
ORCID_PATH,
UPLOAD_BITSTREAM_PATH,
@@ -64,6 +66,10 @@ export const ROUTES: Route[] = [
component: OrcidPageComponent,
canActivate: [authenticatedGuard, orcidPageGuard],
},
{
path: ITEM_ACCESS_BY_TOKEN_PATH,
component: ItemAccessByTokenPageComponent,
},
],
data: {
menu: {

View File

@@ -51,3 +51,5 @@ export const ITEM_EDIT_VERSIONHISTORY_PATH = 'versionhistory';
export const ITEM_VERSION_PATH = 'version';
export const UPLOAD_BITSTREAM_PATH = 'bitstreams/new';
export const ORCID_PATH = 'orcid';
export const ITEM_ACCESS_BY_TOKEN_PATH = 'access-by-token';

View File

@@ -14,6 +14,9 @@ import { StoreModule } from '@ngrx/store';
import { TranslateModule } from '@ngx-translate/core';
import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
import { ItemSecureFileDownloadLinkComponent } from '../../app/item-page/access-by-token/field-components/file-download-link/item-secure-file-download-link.component';
import { ItemSecureFileSectionComponent } from '../../app/item-page/access-by-token/field-components/file-section/item-secure-file-section.component';
import { ItemAccessByTokenPageComponent } from '../../app/item-page/access-by-token/item-access-by-token-page.component';
import { RootModule } from '../../app/root.module';
import { SearchResultsSkeletonComponent } from '../../app/shared/search/search-results/search-results-skeleton/search-results-skeleton.component';
import { MetadataImportPageComponent } from './app/admin/admin-import-metadata-page/metadata-import-page.component';
@@ -133,6 +136,9 @@ const DECLARATIONS = [
CollectionPageComponent,
ItemPageComponent,
FullItemPageComponent,
ItemAccessByTokenPageComponent,
ItemSecureFileSectionComponent,
ItemSecureFileDownloadLinkComponent,
LoginPageComponent,
LogoutPageComponent,
CreateProfileComponent,