Skip to content

Commit a5852fe

Browse files
committed
refactor code
1 parent 7cade94 commit a5852fe

File tree

11 files changed

+20
-90
lines changed

11 files changed

+20
-90
lines changed

src/app/features/collections/components/add-to-collection/project-metadata-step/project-metadata-step.component.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,7 @@ import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
3333
import { AddToCollectionSteps, ProjectMetadataFormControls } from '@osf/features/collections/enums';
3434
import { ProjectMetadataForm } from '@osf/features/collections/models/project-metadata-form.model';
3535
import { ProjectMetadataFormService } from '@osf/features/collections/services';
36-
import {
37-
AddToCollectionSelectors,
38-
GetCollectionLicenses,
39-
GetProviderDefaultLicense,
40-
} from '@osf/features/collections/store/add-to-collection';
36+
import { AddToCollectionSelectors, GetCollectionLicenses } from '@osf/features/collections/store/add-to-collection';
4137
import { TagsInputComponent } from '@osf/shared/components/tags-input/tags-input.component';
4238
import { TextInputComponent } from '@osf/shared/components/text-input/text-input.component';
4339
import { TruncatedTextComponent } from '@osf/shared/components/truncated-text/truncated-text.component';
@@ -49,6 +45,7 @@ import { InterpolatePipe } from '@osf/shared/pipes/interpolate.pipe';
4945
import { ToastService } from '@osf/shared/services/toast.service';
5046
import { GetAllContributors } from '@osf/shared/stores/contributors';
5147
import { ClearProjects, ProjectsSelectors, UpdateProjectMetadata } from '@osf/shared/stores/projects';
48+
import { CollectionsSelectors, GetCollectionProvider } from '@shared/stores/collections';
5249

5350
@Component({
5451
selector: 'osf-project-metadata-step',
@@ -90,8 +87,8 @@ export class ProjectMetadataStepComponent {
9087
readonly inputLimits = InputLimits;
9188

9289
readonly selectedProject = select(ProjectsSelectors.getSelectedProject);
90+
readonly collectionProvider = select(CollectionsSelectors.getCollectionProvider);
9391
readonly collectionLicenses = select(AddToCollectionSelectors.getCollectionLicenses);
94-
readonly providerDefaultLicense = select(AddToCollectionSelectors.getProviderDefaultLicense);
9592
readonly isSelectedProjectUpdateSubmitting = select(ProjectsSelectors.getSelectedProjectUpdateSubmitting);
9693

9794
stepperActiveValue = input.required<number>();
@@ -107,7 +104,7 @@ export class ProjectMetadataStepComponent {
107104
getAllContributors: GetAllContributors,
108105
getCollectionLicenses: GetCollectionLicenses,
109106
clearProjects: ClearProjects,
110-
getProviderDefaultLicense: GetProviderDefaultLicense,
107+
getCollectionProvider: GetCollectionProvider,
111108
});
112109

113110
readonly projectMetadataForm: FormGroup<ProjectMetadataForm> = this.formService.createForm();
@@ -119,9 +116,16 @@ export class ProjectMetadataStepComponent {
119116

120117
readonly projectLicense = computed(() => {
121118
const project = this.selectedProject();
122-
const defaultLicense = this.providerDefaultLicense()?.id;
123-
const licenseId = project?.licenseId || defaultLicense;
124-
return project ? (this.collectionLicenses().find((license) => license.id === licenseId) ?? null) : null;
119+
const defaultProviderLicense = this.collectionProvider()?.defaultLicenseId;
120+
console.log('Project License Computed:', defaultProviderLicense);
121+
console.log('project?.licenseId:', project?.licenseId);
122+
console.log('this.collectionLicenses() ', this.collectionLicenses());
123+
// const res = project ? (this.collectionLicenses().find((license) => license.id === licenseId) ?? null) : null;
124+
// console.log('res: ', res)
125+
const licenseId = project?.licenseId || defaultProviderLicense;
126+
const res = project ? (this.collectionLicenses().find((license) => license.id === licenseId) ?? null) : null;
127+
console.log('res: ', res);
128+
return res;
125129
});
126130

127131
private readonly isFormUnchanged = computed(() => {
@@ -243,7 +247,7 @@ export class ProjectMetadataStepComponent {
243247
this.formService.updateLicenseValidators(this.projectMetadataForm, license);
244248
});
245249
} else {
246-
this.actions.getProviderDefaultLicense(this.providerId());
250+
this.actions.getCollectionProvider(this.providerId());
247251
}
248252
this.populateFormFromProject();
249253
});

src/app/features/collections/services/add-to-collection.service.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,8 @@ import { ReviewActionsMapper } from '@osf/shared/mappers/review-actions.mapper';
99
import { ReviewActionPayload } from '@osf/shared/models/review-action/review-action-payload.model';
1010
import { JsonApiService } from '@osf/shared/services/json-api.service';
1111
import { CollectionSubmissionPayload } from '@shared/models/collections/collection-submission-payload.model';
12-
import { ProviderDefaultLicense } from '@shared/models/collections/collections.model';
1312
import { LicenseModel } from '@shared/models/license/license.model';
14-
import {
15-
LicensesResponseJsonApi,
16-
ProviderDefaultLicenseResponseJsonApi,
17-
} from '@shared/models/license/licenses-json-api.model';
13+
import { LicensesResponseJsonApi } from '@shared/models/license/licenses-json-api.model';
1814

1915
import { RemoveCollectionSubmissionPayload } from '../models/remove-collection-submission-payload.model';
2016

@@ -38,12 +34,6 @@ export class AddToCollectionService {
3834
.pipe(map((licenses) => LicensesMapper.fromLicensesResponse(licenses)));
3935
}
4036

41-
fetchProviderDefaultLicense(providerId: string): Observable<ProviderDefaultLicense> {
42-
return this.jsonApiService
43-
.get<ProviderDefaultLicenseResponseJsonApi>(`${this.apiUrl}/providers/collections/${providerId}/`)
44-
.pipe(map((response) => LicensesMapper.fromProviderDefaultLicenseResponse(response)));
45-
}
46-
4737
createCollectionSubmission(payload: CollectionSubmissionPayload): Observable<void> {
4838
const collectionId = payload.collectionId;
4939
const metadata = CollectionsMapper.toCollectionSubmissionRequest(payload);

src/app/features/collections/store/add-to-collection/add-to-collection.actions.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@ export class GetCollectionLicenses {
88
constructor(public providerId: string) {}
99
}
1010

11-
export class GetProviderDefaultLicense {
12-
static readonly type = '[Add To Collection] Get Provider Default License';
13-
14-
constructor(public providerId: string) {}
15-
}
16-
1711
export class GetCurrentCollectionSubmission {
1812
static readonly type = '[Add To Collection] Get Current Collection Submission';
1913

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import { CollectionProjectSubmission } from '@osf/shared/models/collections/collections.model';
2-
import { ProviderDefaultLicense } from '@shared/models/collections/collections.model';
32
import { LicenseModel } from '@shared/models/license/license.model';
43
import { AsyncStateModel } from '@shared/models/store/async-state.model';
54

65
export interface AddToCollectionStateModel {
76
collectionLicenses: AsyncStateModel<LicenseModel[]>;
87
currentProjectSubmission: AsyncStateModel<CollectionProjectSubmission | null>;
9-
providerDefaultLicense: AsyncStateModel<ProviderDefaultLicense | null>;
108
}
119

1210
export const ADD_TO_COLLECTION_DEFAULTS: AddToCollectionStateModel = {
@@ -20,9 +18,4 @@ export const ADD_TO_COLLECTION_DEFAULTS: AddToCollectionStateModel = {
2018
isLoading: false,
2119
error: null,
2220
},
23-
providerDefaultLicense: {
24-
data: null,
25-
isLoading: false,
26-
error: null,
27-
},
2821
};

src/app/features/collections/store/add-to-collection/add-to-collection.selectors.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ export class AddToCollectionSelectors {
99
return state.collectionLicenses.data;
1010
}
1111

12-
@Selector([AddToCollectionState])
13-
static getProviderDefaultLicense(state: AddToCollectionStateModel) {
14-
return state.providerDefaultLicense.data;
15-
}
16-
1712
@Selector([AddToCollectionState])
1813
static getCollectionLicensesLoading(state: AddToCollectionStateModel) {
1914
return state.collectionLicenses.isLoading;

src/app/features/collections/store/add-to-collection/add-to-collection.state.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import {
1414
CreateCollectionSubmission,
1515
GetCollectionLicenses,
1616
GetCurrentCollectionSubmission,
17-
GetProviderDefaultLicense,
1817
RemoveCollectionSubmission,
1918
UpdateCollectionSubmission,
2019
} from './add-to-collection.actions';
@@ -53,30 +52,6 @@ export class AddToCollectionState {
5352
);
5453
}
5554

56-
@Action(GetProviderDefaultLicense)
57-
getProviderDefaultLicense(ctx: StateContext<AddToCollectionStateModel>, action: GetProviderDefaultLicense) {
58-
const state = ctx.getState();
59-
ctx.patchState({
60-
providerDefaultLicense: {
61-
...state.providerDefaultLicense,
62-
isLoading: true,
63-
},
64-
});
65-
66-
return this.addToCollectionService.fetchProviderDefaultLicense(action.providerId).pipe(
67-
tap((defaultLicense) => {
68-
ctx.patchState({
69-
providerDefaultLicense: {
70-
data: defaultLicense,
71-
isLoading: false,
72-
error: null,
73-
},
74-
});
75-
}),
76-
catchError((error) => handleSectionError(ctx, 'collectionLicenses', error))
77-
);
78-
}
79-
8055
@Action(GetCurrentCollectionSubmission)
8156
getCurrentCollectionSubmission(ctx: StateContext<AddToCollectionStateModel>, action: GetCurrentCollectionSubmission) {
8257
const state = ctx.getState();

src/app/shared/mappers/collections/collections.mapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export class CollectionsMapper {
5858
id: response.relationships.primary_collection.data.id,
5959
type: response.relationships.primary_collection.data.type,
6060
},
61+
defaultLicenseId: response.attributes?.default_license_id,
6162
brand: response.embeds.brand.data
6263
? {
6364
id: response.embeds.brand.data.id,

src/app/shared/mappers/licenses.mapper.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
import { LicenseModel } from '../models/license/license.model';
2-
import {
3-
LicenseDataJsonApi,
4-
LicensesResponseJsonApi,
5-
ProviderDefaultLicenseResponseJsonApi,
6-
} from '../models/license/licenses-json-api.model';
2+
import { LicenseDataJsonApi, LicensesResponseJsonApi } from '../models/license/licenses-json-api.model';
73

84
export class LicensesMapper {
95
static fromLicensesResponse(response: LicensesResponseJsonApi): LicenseModel[] {
@@ -27,10 +23,4 @@ export class LicensesMapper {
2723
text: data?.attributes?.text,
2824
};
2925
}
30-
31-
static fromProviderDefaultLicenseResponse(response: ProviderDefaultLicenseResponseJsonApi) {
32-
return {
33-
id: response?.data.attributes?.default_license_id,
34-
};
35-
}
3626
}

src/app/shared/models/collections/collections.model.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface CollectionProvider extends BaseProviderModel {
1818
type: string;
1919
};
2020
brand: BrandModel | null;
21+
defaultLicenseId?: string | null;
2122
}
2223

2324
export interface CollectionFilters {
@@ -101,10 +102,6 @@ export interface CollectionProjectSubmission {
101102
project: ProjectModel;
102103
}
103104

104-
export interface ProviderDefaultLicense {
105-
id: string;
106-
}
107-
108105
export type CollectionSubmissionActionType = 'collection_submission_actions';
109106

110107
export type CollectionSubmissionTargetType = 'collection-submissions';

src/app/shared/models/license/licenses-json-api.model.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,8 @@ export interface LicenseResponseJsonApi {
1010
data: LicenseDataJsonApi;
1111
}
1212

13-
export interface ProviderDefaultLicenseAttributesJsonApi {
14-
default_license_id: string;
15-
}
16-
17-
export interface ProviderDefaultLicenseResponseJsonApi {
18-
data: ProviderDefaultLicenseDataJsonApi;
19-
}
20-
2113
export type LicenseDataJsonApi = ApiData<LicenseAttributesJsonApi, null, null, null>;
2214

23-
export type ProviderDefaultLicenseDataJsonApi = ApiData<ProviderDefaultLicenseAttributesJsonApi, null, null, null>;
24-
2515
export interface LicenseAttributesJsonApi {
2616
name: string;
2717
required_fields: string[];

0 commit comments

Comments
 (0)