Skip to content

Commit f1b0cfd

Browse files
committed
refactor: remove collection from namings to avoid confusion with featured items type dv object collection
1 parent daa3b79 commit f1b0cfd

File tree

13 files changed

+66
-75
lines changed

13 files changed

+66
-75
lines changed

docs/useCases.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ The `CollectionItemSubset`returned instance contains a property called `totalIte
278278

279279
#### Get Collection Featured Items
280280

281-
Returns a [CollectionFeaturedItem](../src/collections/domain/models/CollectionFeaturedItem.ts) array containing the featured items of the requested collection, given the collection identifier or alias.
281+
Returns a [FeaturedItem](../src/collections/domain/models/CollectionFeaturedItem.ts) array containing the featured items of the requested collection, given the collection identifier or alias.
282282

283283
##### Example call:
284284

@@ -289,7 +289,7 @@ const collectionIdOrAlias = 12345
289289

290290
getCollectionFeaturedItems
291291
.execute(collectionId)
292-
.then((featuredItems: CollectionFeaturedItem[]) => {
292+
.then((featuredItems: FeaturedItem[]) => {
293293
/* ... */
294294
})
295295
.catch((error: Error) => {
@@ -406,7 +406,7 @@ _See [use case](../src/collections/domain/useCases/DeleteCollection.ts)_ definit
406406

407407
#### Update Collection Featured Items
408408

409-
Updates all featured items, given a collection identifier and a CollectionFeaturedItemsDTO.
409+
Updates all featured items, given a collection identifier and a FeaturedItemsDTO.
410410

411411
##### Example call:
412412

@@ -417,11 +417,9 @@ import { updateCollectionFeaturedItems } from '@iqss/dataverse-client-javascript
417417

418418
const collectionIdOrAlias = 12345
419419

420-
updateCollectionFeaturedItems
421-
.execute(collectionIdOrAlias)
422-
.then((collectionFeaturedItems: CollectionFeaturedItem[]) => {
423-
/* ... */
424-
})
420+
updateCollectionFeaturedItems.execute(collectionIdOrAlias).then((featuredItems: FeaturedItem[]) => {
421+
/* ... */
422+
})
425423

426424
/* ... */
427425
```

src/collections/domain/dtos/CollectionFeaturedItemsDTO.ts renamed to src/collections/domain/dtos/FeaturedItemsDTO.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { CustomFeaturedItem, DvObjectFeaturedItem } from '../models/CollectionFeaturedItem'
1+
import { CustomFeaturedItem, DvObjectFeaturedItem } from '../models/FeaturedItem'
22

3-
export type CollectionFeaturedItemsDTO = (CustomFeaturedItemDTO | DvObjectFeaturedItemDTO)[]
3+
export type FeaturedItemsDTO = (CustomFeaturedItemDTO | DvObjectFeaturedItemDTO)[]
44

55
export interface CustomFeaturedItemDTO {
66
id?: number

src/collections/domain/models/CollectionFeaturedItem.ts renamed to src/collections/domain/models/FeaturedItem.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export type CollectionFeaturedItem = CustomFeaturedItem | DvObjectFeaturedItem
1+
export type FeaturedItem = CustomFeaturedItem | DvObjectFeaturedItem
22

33
export interface CustomFeaturedItem {
44
id: number

src/collections/domain/repositories/ICollectionsRepository.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { CollectionDTO } from '../dtos/CollectionDTO'
2-
import { CollectionFeaturedItemsDTO } from '../dtos/CollectionFeaturedItemsDTO'
2+
import { FeaturedItemsDTO } from '../dtos/FeaturedItemsDTO'
33
import { Collection } from '../models/Collection'
44
import { CollectionFacet } from '../models/CollectionFacet'
5-
import { CollectionFeaturedItem } from '../models/CollectionFeaturedItem'
5+
import { FeaturedItem } from '../models/FeaturedItem'
66
import { CollectionItemSubset } from '../models/CollectionItemSubset'
77
import { MyDataCollectionItemSubset } from '../models/MyDataCollectionItemSubset'
88
import { CollectionSearchCriteria } from '../models/CollectionSearchCriteria'
@@ -42,13 +42,11 @@ export interface ICollectionsRepository {
4242
collectionIdOrAlias: number | string,
4343
updatedCollection: CollectionDTO
4444
): Promise<void>
45-
getCollectionFeaturedItems(
46-
collectionIdOrAlias: number | string
47-
): Promise<CollectionFeaturedItem[]>
45+
getCollectionFeaturedItems(collectionIdOrAlias: number | string): Promise<FeaturedItem[]>
4846
updateCollectionFeaturedItems(
4947
collectionIdOrAlias: number | string,
50-
featuredItemDTOs: CollectionFeaturedItemsDTO
51-
): Promise<CollectionFeaturedItem[]>
48+
featuredItemDTOs: FeaturedItemsDTO
49+
): Promise<FeaturedItem[]>
5250
deleteCollectionFeaturedItems(collectionIdOrAlias: number | string): Promise<void>
5351
deleteCollectionFeaturedItem(featuredItemId: number): Promise<void>
5452
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
import { UseCase } from '../../../core/domain/useCases/UseCase'
22
import { ICollectionsRepository } from '../repositories/ICollectionsRepository'
33
import { ROOT_COLLECTION_ID } from '../models/Collection'
4-
import { CollectionFeaturedItem } from '../models/CollectionFeaturedItem'
4+
import { FeaturedItem } from '../models/FeaturedItem'
55

6-
export class GetCollectionFeaturedItems implements UseCase<CollectionFeaturedItem[]> {
6+
export class GetCollectionFeaturedItems implements UseCase<FeaturedItem[]> {
77
private collectionsRepository: ICollectionsRepository
88

99
constructor(collectionsRepository: ICollectionsRepository) {
1010
this.collectionsRepository = collectionsRepository
1111
}
1212

1313
/**
14-
* Returns a CollectionFeaturedItem array containing the featured items of the requested collection, given the collection identifier or alias.
14+
* Returns a FeaturedItem array containing the featured items of the requested collection, given the collection identifier or alias.
1515
*
1616
* @param {number | string} [collectionIdOrAlias = ':root'] - A generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId)
1717
* If this parameter is not set, the default value is: ':root'
18-
* @returns {Promise<CollectionFeaturedItem[]>}
18+
* @returns {Promise<FeaturedItem[]>}
1919
*/
2020
async execute(
2121
collectionIdOrAlias: number | string = ROOT_COLLECTION_ID
22-
): Promise<CollectionFeaturedItem[]> {
22+
): Promise<FeaturedItem[]> {
2323
return await this.collectionsRepository.getCollectionFeaturedItems(collectionIdOrAlias)
2424
}
2525
}

src/collections/domain/useCases/UpdateCollectionFeaturedItems.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
import { UseCase } from '../../../core/domain/useCases/UseCase'
2-
import { CollectionFeaturedItemsDTO } from '../dtos/CollectionFeaturedItemsDTO'
2+
import { FeaturedItemsDTO } from '../dtos/FeaturedItemsDTO'
33
import { ROOT_COLLECTION_ID } from '../models/Collection'
4-
import { CollectionFeaturedItem } from '../models/CollectionFeaturedItem'
4+
import { FeaturedItem } from '../models/FeaturedItem'
55
import { ICollectionsRepository } from '../repositories/ICollectionsRepository'
66

7-
export class UpdateCollectionFeaturedItems implements UseCase<CollectionFeaturedItem[]> {
7+
export class UpdateCollectionFeaturedItems implements UseCase<FeaturedItem[]> {
88
private collectionsRepository: ICollectionsRepository
99

1010
constructor(collectionsRepository: ICollectionsRepository) {
1111
this.collectionsRepository = collectionsRepository
1212
}
1313

1414
/**
15-
* Updates all featured items, given a collection identifier and a CollectionFeaturedItemsDTO.
15+
* Updates all featured items, given a collection identifier and a FeaturedItemsDTO.
1616
*
1717
* @param {number | string} [collectionIdOrAlias = ':root'] - A generic collection identifier, which can be either a string (for queries by CollectionAlias), or a number (for queries by CollectionId)
1818
* If this parameter is not set, the default value is: ':root'
19-
* @param {CollectionFeaturedItemsDTO} [newCollectionFeaturedItems] - CollectionFeaturedItemsDTO object including the updated collection featured items data.
20-
* @returns {Promise<CollectionFeaturedItem[]>} -This method returns the updated collection featured items upon successful completion.
19+
* @param {FeaturedItemsDTO} [featuredItemsDTO] - FeaturedItemsDTO object including the updated collection featured items data.
20+
* @returns {Promise<FeaturedItem[]>} -This method returns the updated collection featured items upon successful completion.
2121
* @throws {WriteError} - If there are errors while writing data.
2222
*/
2323
async execute(
2424
collectionIdOrAlias: number | string = ROOT_COLLECTION_ID,
25-
featuredItemsDTO: CollectionFeaturedItemsDTO
26-
): Promise<CollectionFeaturedItem[]> {
25+
featuredItemsDTO: FeaturedItemsDTO
26+
): Promise<FeaturedItem[]> {
2727
return await this.collectionsRepository.updateCollectionFeaturedItems(
2828
collectionIdOrAlias,
2929
featuredItemsDTO

src/collections/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ export { CollectionDTO, CollectionInputLevelDTO } from './domain/dtos/Collection
5151
export { CollectionPreview } from './domain/models/CollectionPreview'
5252
export { CollectionItemType } from './domain/models/CollectionItemType'
5353
export { CollectionSearchCriteria } from './domain/models/CollectionSearchCriteria'
54-
export { CollectionFeaturedItem } from './domain/models/CollectionFeaturedItem'
55-
export { CollectionFeaturedItemsDTO } from './domain/dtos/CollectionFeaturedItemsDTO'
54+
export { FeaturedItem } from './domain/models/FeaturedItem'
55+
export { FeaturedItemsDTO } from './domain/dtos/FeaturedItemsDTO'

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ import {
2020
} from '../../domain/models/CollectionSearchCriteria'
2121
import { CollectionItemType } from '../../domain/models/CollectionItemType'
2222
import {
23-
CollectionFeaturedItem,
23+
FeaturedItem,
2424
DvObjectFeaturedItem,
2525
FeaturedItemType
26-
} from '../../domain/models/CollectionFeaturedItem'
26+
} from '../../domain/models/FeaturedItem'
2727
import {
2828
domainTypeToApiType,
29-
transformCollectionFeaturedItemsPayloadToCollectionFeaturedItems
29+
transformFeaturedItemsPayloadToFeaturedItems
3030
} from './transformers/collectionFeaturedItemsTransformer'
3131
import {
32-
CollectionFeaturedItemsDTO,
32+
FeaturedItemsDTO,
3333
CustomFeaturedItemDTO,
3434
DvObjectFeaturedItemDTO
35-
} from '../../domain/dtos/CollectionFeaturedItemsDTO'
35+
} from '../../domain/dtos/FeaturedItemsDTO'
3636
import { ApiConstants } from '../../../core/infra/repositories/ApiConstants'
3737
import { PublicationStatus } from '../../../core/domain/models/PublicationStatus'
3838
import { ReadError } from '../../../core/domain/repositories/ReadError'
@@ -362,20 +362,18 @@ export class CollectionsRepository extends ApiRepository implements ICollections
362362

363363
public async getCollectionFeaturedItems(
364364
collectionIdOrAlias: number | string
365-
): Promise<CollectionFeaturedItem[]> {
365+
): Promise<FeaturedItem[]> {
366366
return this.doGet(`/${this.collectionsResourceName}/${collectionIdOrAlias}/featuredItems`, true)
367-
.then((response) =>
368-
transformCollectionFeaturedItemsPayloadToCollectionFeaturedItems(response.data.data)
369-
)
367+
.then((response) => transformFeaturedItemsPayloadToFeaturedItems(response.data.data))
370368
.catch((error) => {
371369
throw error
372370
})
373371
}
374372

375373
public async updateCollectionFeaturedItems(
376374
collectionIdOrAlias: number | string,
377-
featuredItemsDTO: CollectionFeaturedItemsDTO
378-
): Promise<CollectionFeaturedItem[]> {
375+
featuredItemsDTO: FeaturedItemsDTO
376+
): Promise<FeaturedItem[]> {
379377
const featuredItemsFormData = this.toFeaturedItemsFormData(featuredItemsDTO)
380378

381379
return this.doPut(
@@ -384,15 +382,13 @@ export class CollectionsRepository extends ApiRepository implements ICollections
384382
undefined,
385383
ApiConstants.CONTENT_TYPE_MULTIPART_FORM_DATA
386384
)
387-
.then((response) =>
388-
transformCollectionFeaturedItemsPayloadToCollectionFeaturedItems(response.data.data)
389-
)
385+
.then((response) => transformFeaturedItemsPayloadToFeaturedItems(response.data.data))
390386
.catch((error) => {
391387
throw error
392388
})
393389
}
394390

395-
private toFeaturedItemsFormData(featuredItemsDTO: CollectionFeaturedItemsDTO): FormData {
391+
private toFeaturedItemsFormData(featuredItemsDTO: FeaturedItemsDTO): FormData {
396392
// This is not really necessary because we are sending displayOrder property anyways, but I wanted to keep the order of the items in the form data
397393
const orderedFeaturedItemsDTO = featuredItemsDTO.sort((a, b) => a.displayOrder - b.displayOrder)
398394

src/collections/infra/repositories/transformers/collectionFeaturedItemsTransformer.ts renamed to src/collections/infra/repositories/transformers/featuredItemsTransformer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {
2-
CollectionFeaturedItem,
2+
FeaturedItem,
33
CustomFeaturedItem,
44
DvObjectFeaturedItem,
55
FeaturedItemType
6-
} from '../../../domain/models/CollectionFeaturedItem'
6+
} from '../../../domain/models/FeaturedItem'
77
import {
88
CollectionFeaturedItemPayload,
99
DvObjectFeaturedItemPayload
@@ -27,9 +27,9 @@ export const domainTypeToApiType: Record<
2727
[FeaturedItemType.FILE]: 'datafile'
2828
}
2929

30-
export const transformCollectionFeaturedItemsPayloadToCollectionFeaturedItems = (
30+
export const transformFeaturedItemsPayloadToFeaturedItems = (
3131
payload: CollectionFeaturedItemPayload[]
32-
): CollectionFeaturedItem[] => {
32+
): FeaturedItem[] => {
3333
return payload
3434
.map((item) => {
3535
if (item.type === 'custom') {

test/functional/collections/GetCollectionFeaturedItems.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
CustomFeaturedItem,
1818
DvObjectFeaturedItem,
1919
FeaturedItemType
20-
} from '../../../src/collections/domain/models/CollectionFeaturedItem'
20+
} from '../../../src/collections/domain/models/FeaturedItem'
2121

2222
describe('execute', () => {
2323
const testCollectionAlias = 'getCollectionsFeaturedItemsTest'

0 commit comments

Comments
 (0)