Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions src/app/core/services/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,28 @@ export class AuthService {
private readonly jsonApiService = inject(JsonApiService);
private readonly cookieService = inject(CookieService);
private readonly loaderService = inject(LoaderService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2/users/`;
private readonly webUrl = environment.webUrl;
private readonly actions = createDispatchMap({ clearCurrentUser: ClearCurrentUser });

navigateToSignIn(): void {
this.loaderService.show();
const loginUrl = `${environment.casUrl}/login?${urlParam({ service: `${environment.webUrl}/login` })}`;
const loginUrl = `${environment.casUrl}/login?${urlParam({ service: `${this.webUrl}/login` })}`;
window.location.href = loginUrl;
}

navigateToOrcidSingIn(): void {
const loginUrl = `${environment.casUrl}/login?${urlParam({
redirectOrcid: 'true',
service: `${environment.webUrl}/login/?next=${encodeURIComponent(environment.webUrl)}`,
service: `${this.webUrl}/login/?next=${encodeURIComponent(this.webUrl)}`,
})}`;
window.location.href = loginUrl;
}

navigateToInstitutionSignIn(): void {
const loginUrl = `${environment.casUrl}/login?${urlParam({
campaign: 'institution',
service: `${environment.webUrl}/login/?next=${encodeURIComponent(environment.webUrl)}`,
service: `${this.webUrl}/login/?next=${encodeURIComponent(this.webUrl)}`,
})}`;
window.location.href = loginUrl;
}
Expand All @@ -47,25 +49,25 @@ export class AuthService {
this.loaderService.show();
this.cookieService.deleteAll();
this.actions.clearCurrentUser();
window.location.href = `${environment.webUrl}/logout/?next=${encodeURIComponent('/')}`;
window.location.href = `${this.webUrl}/logout/?next=${encodeURIComponent('/')}`;
}

register(payload: SignUpModel) {
const baseUrl = `${environment.apiUrlV1}/register/`;
const baseUrl = `${this.webUrl}/api/v1/register/`;
const body = { ...payload, 'g-recaptcha-response': payload.recaptcha, campaign: null };

return this.jsonApiService.post(baseUrl, body);
}

forgotPassword(email: string) {
const baseUrl = `${environment.apiUrl}/users/reset_password/`;
const baseUrl = `${this.apiUrl}/reset_password/`;
const params: Record<string, string> = { email };

return this.jsonApiService.get(baseUrl, params);
}

resetPassword(userId: string, token: string, newPassword: string) {
const baseUrl = `${environment.apiUrl}/users/reset_password/`;
const baseUrl = `${this.apiUrl}/reset_password/`;
const body = {
data: {
attributes: {
Expand Down
7 changes: 4 additions & 3 deletions src/app/core/services/request-access.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import { Observable } from 'rxjs';

import { inject, Injectable } from '@angular/core';

import { JsonApiService } from '../../shared/services/json-api.service';
import { JsonApiService } from '@osf/shared/services';

import { environment } from 'src/environments/environment';

@Injectable({
providedIn: 'root',
})
export class RequestAccessService {
jsonApiService = inject(JsonApiService);
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2`;

requestAccessToProject(projectId: string, comment = ''): Observable<void> {
const payload = {
Expand All @@ -23,6 +24,6 @@ export class RequestAccessService {
},
};

return this.jsonApiService.post<void>(`${environment.apiUrl}/nodes/${projectId}/requests/`, payload);
return this.jsonApiService.post<void>(`${this.apiUrl}/nodes/${projectId}/requests/`, payload);
}
}
2 changes: 1 addition & 1 deletion src/app/core/services/user-emails.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { environment } from 'src/environments/environment';
})
export class UserEmailsService {
private readonly jsonApiService = inject(JsonApiService);
private readonly baseUrl = `${environment.apiUrl}/users`;
private readonly baseUrl = `${environment.apiDomainUrl}/v2/users`;

getEmails(): Observable<AccountEmailModel[]> {
const params: Record<string, string> = {
Expand Down
13 changes: 7 additions & 6 deletions src/app/core/services/user.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,39 +23,40 @@ import { environment } from 'src/environments/environment';
providedIn: 'root',
})
export class UserService {
jsonApiService = inject(JsonApiService);
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2`;

getUserById(userId: string): Observable<User> {
return this.jsonApiService
.get<UserResponseJsonApi>(`${environment.apiUrl}/users/${userId}/`)
.get<UserResponseJsonApi>(`${this.apiUrl}/users/${userId}/`)
.pipe(map((response) => UserMapper.fromUserGetResponse(response.data)));
}

getCurrentUser(): Observable<UserData> {
return this.jsonApiService
.get<UserDataResponseJsonApi>(`${environment.apiUrl}/`)
.get<UserDataResponseJsonApi>(`${this.apiUrl}/`)
.pipe(map((response) => UserMapper.fromUserDataGetResponse(response)));
}

getCurrentUserSettings(): Observable<UserSettings> {
return this.jsonApiService
.get<JsonApiResponse<UserSettingsGetResponse, null>>(`${environment.apiUrl}/users/me/settings/`)
.get<JsonApiResponse<UserSettingsGetResponse, null>>(`${this.apiUrl}/users/me/settings/`)
.pipe(map((response) => UserMapper.fromUserSettingsGetResponse(response.data)));
}

updateUserSettings(userId: string, userSettings: UserSettings): Observable<UserSettings> {
const request = UserMapper.toUpdateUserSettingsRequest(userId, userSettings);

return this.jsonApiService
.patch<UserSettingsGetResponse>(`${environment.apiUrl}/users/${userId}/settings/`, request)
.patch<UserSettingsGetResponse>(`${this.apiUrl}/users/${userId}/settings/`, request)
.pipe(map((response) => UserMapper.fromUserSettingsGetResponse(response)));
}

updateUserProfile(userId: string, key: string, data: ProfileSettingsUpdate): Observable<User> {
const patchedData = key === ProfileSettingsKey.User ? data : { [key]: data };

return this.jsonApiService
.patch<UserDataJsonApi>(`${environment.apiUrl}/users/${userId}/`, {
.patch<UserDataJsonApi>(`${this.apiUrl}/users/${userId}/`, {
data: { type: 'users', id: userId, attributes: patchedData },
})
.pipe(map((response) => UserMapper.fromUserGetResponse(response)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,18 @@ import { environment } from 'src/environments/environment';
providedIn: 'root',
})
export class InstitutionsAdminService {
private jsonApiService = inject(JsonApiService);
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2`;

fetchDepartments(institutionId: string): Observable<InstitutionDepartment[]> {
return this.jsonApiService
.get<InstitutionDepartmentsJsonApi>(`${environment.apiUrl}/institutions/${institutionId}/metrics/departments/`)
.get<InstitutionDepartmentsJsonApi>(`${this.apiUrl}/institutions/${institutionId}/metrics/departments/`)
.pipe(map((res) => mapInstitutionDepartments(res)));
}

fetchSummary(institutionId: string): Observable<InstitutionSummaryMetrics> {
return this.jsonApiService
.get<InstitutionSummaryMetricsJsonApi>(`${environment.apiUrl}/institutions/${institutionId}/metrics/summary/`)
.get<InstitutionSummaryMetricsJsonApi>(`${this.apiUrl}/institutions/${institutionId}/metrics/summary/`)
.pipe(map((result) => mapInstitutionSummaryMetrics(result.data.attributes)));
}

Expand All @@ -71,7 +72,7 @@ export class InstitutionsAdminService {
};

return this.jsonApiService
.get<InstitutionUsersJsonApi>(`${environment.apiUrl}/institutions/${institutionId}/metrics/users/`, params)
.get<InstitutionUsersJsonApi>(`${this.apiUrl}/institutions/${institutionId}/metrics/users/`, params)
.pipe(
map((response) => ({
users: mapInstitutionUsers(response as InstitutionUsersJsonApi),
Expand Down Expand Up @@ -105,23 +106,23 @@ export class InstitutionsAdminService {
};

return this.jsonApiService
.get<InstitutionIndexValueSearchJsonApi>(`${environment.shareDomainUrl}/index-value-search`, params)
.get<InstitutionIndexValueSearchJsonApi>(`${environment.shareTroveUrl}/index-value-search`, params)
.pipe(map((response) => mapIndexCardResults(response?.included)));
}

sendMessage(request: SendMessageRequest): Observable<SendMessageResponseJsonApi> {
const payload = sendMessageRequestMapper(request);

return this.jsonApiService.post<SendMessageResponseJsonApi>(
`${environment.apiUrl}/users/${request.userId}/messages/`,
`${this.apiUrl}/users/${request.userId}/messages/`,
payload
);
}

requestProjectAccess(request: RequestProjectAccessData): Observable<void> {
const payload = requestProjectAccessMapper(request);

return this.jsonApiService.post<void>(`${environment.apiUrl}/nodes/${request.projectId}/requests/`, payload);
return this.jsonApiService.post<void>(`${this.apiUrl}/nodes/${request.projectId}/requests/`, payload);
}

private fetchIndexCards(
Expand All @@ -131,7 +132,7 @@ export class InstitutionsAdminService {
sort = '-dateModified',
cursor = ''
): Observable<AdminInstitutionSearchResult> {
const url = `${environment.shareDomainUrl}/index-card-search`;
const url = `${environment.shareTroveUrl}/index-card-search`;
const affiliationParam = institutionIris.join(',');

const params: Record<string, string> = {
Expand Down
5 changes: 3 additions & 2 deletions src/app/features/analytics/services/analytics.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ import { environment } from 'src/environments/environment';
})
export class AnalyticsService {
private readonly jsonApiService = inject(JsonApiService);
private readonly apiDomainUrl = environment.apiDomainUrl;

private readonly urlMap = new Map<ResourceType, string>([
[ResourceType.Project, 'nodes'],
[ResourceType.Registration, 'registrations'],
]);

getMetrics(resourceId: string, dateRange: string): Observable<AnalyticsMetricsModel> {
const baseUrl = `${environment.apiDomainUrl}/_/metrics/query/node_analytics`;
const baseUrl = `${this.apiDomainUrl}/_/metrics/query/node_analytics`;

return this.jsonApiService
.get<JsonApiResponse<AnalyticsMetricsGetResponse, null>>(`${baseUrl}/${resourceId}/${dateRange}/`)
Expand All @@ -32,7 +33,7 @@ export class AnalyticsService {

getRelatedCounts(resourceId: string, resourceType: ResourceType) {
const resourcePath = this.urlMap.get(resourceType);
const url = `${environment.apiUrl}/${resourcePath}/${resourceId}/?related_counts=true`;
const url = `${this.apiDomainUrl}/v2/${resourcePath}/${resourceId}/?related_counts=true`;

return this.jsonApiService
.get<RelatedCountsGetResponse>(url)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import { environment } from 'src/environments/environment';
providedIn: 'root',
})
export class AddToCollectionService {
private apiUrl = environment.apiUrl;
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2`;

fetchCollectionLicenses(providerId: string): Observable<LicenseModel[]> {
return this.jsonApiService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export class FileRevisionsComponent {

downloadRevision(version: string): void {
if (this.fileGuid()) {
window.open(`${environment.downloadUrl}/${this.fileGuid()}/?revision=${version}`)?.focus();
window.open(`${environment.webUrl}/download/${this.fileGuid()}/?revision=${version}`)?.focus();
}
}
}
2 changes: 1 addition & 1 deletion src/app/features/files/pages/files/files.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export class FilesComponent {
const resourceId = this.resourceId();

const resourcePath = this.urlMap.get(this.resourceType()!);
const folderLink = `${environment.apiUrl}/${resourcePath}/${resourceId}/files/`;
const folderLink = `${environment.apiDomainUrl}/v2/${resourcePath}/${resourceId}/files/`;
const iriLink = `${environment.webUrl}/${resourceId}`;
this.actions.getRootFolders(folderLink);
this.actions.getConfiguredStorageAddons(iriLink);
Expand Down
12 changes: 5 additions & 7 deletions src/app/features/metadata/services/metadata.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ import { environment } from 'src/environments/environment';
})
export class MetadataService {
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = environment.apiUrl;
private readonly apiDomainUrl = environment.apiDomainUrl;
private readonly apiUrl = `${this.apiDomainUrl}/v2`;
private readonly urlMap = new Map<ResourceType, string>([
[ResourceType.Project, 'nodes'],
[ResourceType.Registration, 'registrations'],
Expand Down Expand Up @@ -77,7 +78,7 @@ export class MetadataService {

getMetadataCedarTemplates(url?: string): Observable<CedarMetadataTemplateJsonApi> {
return this.jsonApiService.get<CedarMetadataTemplateJsonApi>(
url || `${environment.apiDomainUrl}/_/cedar_metadata_templates/`
url || `${this.apiDomainUrl}/_/cedar_metadata_templates/`
);
}

Expand All @@ -99,10 +100,7 @@ export class MetadataService {
resourceType: ResourceType
): Observable<CedarMetadataRecord> {
const payload = CedarRecordsMapper.toCedarRecordsPayload(data, resourceId, this.urlMap.get(resourceType) as string);
return this.jsonApiService.post<CedarMetadataRecord>(
`${environment.apiDomainUrl}/_/cedar_metadata_records/`,
payload
);
return this.jsonApiService.post<CedarMetadataRecord>(`${this.apiDomainUrl}/_/cedar_metadata_records/`, payload);
}

updateMetadataCedarRecord(
Expand All @@ -114,7 +112,7 @@ export class MetadataService {
const payload = CedarRecordsMapper.toCedarRecordsPayload(data, resourceId, this.urlMap.get(resourceType) as string);

return this.jsonApiService.patch<CedarMetadataRecord>(
`${environment.apiDomainUrl}/_/cedar_metadata_records/${recordId}/`,
`${this.apiDomainUrl}/_/cedar_metadata_records/${recordId}/`,
payload
);
}
Expand Down
11 changes: 6 additions & 5 deletions src/app/features/moderation/services/moderators.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { environment } from 'src/environments/environment';
})
export class ModeratorsService {
private readonly jsonApiService = inject(JsonApiService);
private readonly apiUrl = `${environment.apiDomainUrl}/v2`;

private readonly urlMap = new Map<ResourceType, string>([
[ResourceType.Collection, 'providers/collections'],
Expand All @@ -25,15 +26,15 @@ export class ModeratorsService {
]);

getModerators(resourceId: string, resourceType: ResourceType): Observable<ModeratorModel[]> {
const baseUrl = `${environment.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators`;
const baseUrl = `${this.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators`;

return this.jsonApiService
.get<ModeratorResponseJsonApi>(baseUrl)
.pipe(map((response) => response.data.map((moderator) => ModerationMapper.fromModeratorResponse(moderator))));
}

addModerator(resourceId: string, resourceType: ResourceType, data: ModeratorAddModel): Observable<ModeratorModel> {
const baseUrl = `${environment.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/`;
const baseUrl = `${this.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/`;
const type = data.id ? AddModeratorType.Search : AddModeratorType.Invite;

const moderatorData = { data: ModerationMapper.toModeratorAddRequest(data, type) };
Expand All @@ -44,7 +45,7 @@ export class ModeratorsService {
}

updateModerator(resourceId: string, resourceType: ResourceType, data: ModeratorAddModel): Observable<ModeratorModel> {
const baseUrl = `${environment.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/${data.id}`;
const baseUrl = `${this.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/${data.id}`;
const moderatorData = { data: ModerationMapper.toModeratorAddRequest(data) };

return this.jsonApiService
Expand All @@ -53,13 +54,13 @@ export class ModeratorsService {
}

deleteModerator(resourceId: string, resourceType: ResourceType, userId: string): Observable<void> {
const baseUrl = `${environment.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/${userId}`;
const baseUrl = `${this.apiUrl}/${this.urlMap.get(resourceType)}/${resourceId}/moderators/${userId}`;

return this.jsonApiService.delete(baseUrl);
}

searchUsers(value: string, page = 1): Observable<PaginatedData<ModeratorAddModel[]>> {
const baseUrl = `${environment.apiUrl}/users/?filter[full_name]=${value}&page=${page}`;
const baseUrl = `${this.apiUrl}/users/?filter[full_name]=${value}&page=${page}`;

return this.jsonApiService
.get<ResponseJsonApi<UserDataJsonApi[]>>(baseUrl)
Expand Down
Loading
Loading