Skip to content

Commit 849df99

Browse files
committed
feat: add use case
1 parent 8bf07fe commit 849df99

File tree

4 files changed

+44
-1
lines changed

4 files changed

+44
-1
lines changed

src/info/domain/repositories/IDataverseInfoRepository.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ export interface IDataverseInfoRepository {
44
getDataverseVersion(): Promise<DataverseVersion>
55
getZipDownloadLimit(): Promise<number>
66
getMaxEmbargoDurationInMonths(): Promise<number>
7+
getApplicationTermsOfUse(lang?: string): Promise<string>
78
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { UseCase } from '../../../core/domain/useCases/UseCase'
2+
import { IDataverseInfoRepository } from '../repositories/IDataverseInfoRepository'
3+
4+
export class GetApplicationTermsOfUse implements UseCase<string> {
5+
private dataverseInfoRepository: IDataverseInfoRepository
6+
7+
constructor(dataverseInfoRepository: IDataverseInfoRepository) {
8+
this.dataverseInfoRepository = dataverseInfoRepository
9+
}
10+
11+
/**
12+
* Returns a string containing the application terms of use.
13+
*
14+
* @returns {Promise<string>}
15+
*/
16+
async execute(lang?: string): Promise<string> {
17+
return await this.dataverseInfoRepository.getApplicationTermsOfUse(lang)
18+
}
19+
}

src/info/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@ import { DataverseInfoRepository } from './infra/repositories/DataverseInfoRepos
22
import { GetDataverseVersion } from './domain/useCases/GetDataverseVersion'
33
import { GetZipDownloadLimit } from './domain/useCases/GetZipDownloadLimit'
44
import { GetMaxEmbargoDurationInMonths } from './domain/useCases/GetMaxEmbargoDurationInMonths'
5+
import { GetApplicationTermsOfUse } from './domain/useCases/GetApplicationTermsOfUse'
56

67
const dataverseInfoRepository = new DataverseInfoRepository()
78

89
const getDataverseVersion = new GetDataverseVersion(dataverseInfoRepository)
910
const getZipDownloadLimit = new GetZipDownloadLimit(dataverseInfoRepository)
1011
const getMaxEmbargoDurationInMonths = new GetMaxEmbargoDurationInMonths(dataverseInfoRepository)
12+
const getApplicationTermsOfUse = new GetApplicationTermsOfUse(dataverseInfoRepository)
1113

12-
export { getDataverseVersion, getZipDownloadLimit, getMaxEmbargoDurationInMonths }
14+
export {
15+
getDataverseVersion,
16+
getZipDownloadLimit,
17+
getMaxEmbargoDurationInMonths,
18+
getApplicationTermsOfUse
19+
}

src/info/infra/repositories/DataverseInfoRepository.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,20 @@ export class DataverseInfoRepository extends ApiRepository implements IDataverse
3939
build: responseData.build
4040
}
4141
}
42+
43+
public async getApplicationTermsOfUse(lang?: string): Promise<string> {
44+
return this.doGet(
45+
this.buildApiEndpoint(this.infoResourceName, `applicationTermsOfUse`),
46+
false,
47+
{
48+
...(lang ? { lang } : {})
49+
}
50+
)
51+
.then((response: AxiosResponse<{ data: { message: string } }>) => {
52+
return response.data.data.message
53+
})
54+
.catch((error) => {
55+
throw error
56+
})
57+
}
4258
}

0 commit comments

Comments
 (0)