diff --git a/package.json b/package.json index 0a10cac6477292bfd310f2727caee825e672a392..ab8d9d58fd5d8e8e346d9bc3bdcbe25f4e266aee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@coscine/api-connection", - "version": "1.24.2", + "version": "1.24.3", "description": "This library provides methods to connect to CoScInE Apis with JavaScript.", "keywords": [ "coscine", diff --git a/src/api-connection.ts b/src/api-connection.ts index a044f56b8e635218add36cf740cc0a6bd6f5fa1a..9a7a81bf529417a68504efe14d6e67fbff075763 100644 --- a/src/api-connection.ts +++ b/src/api-connection.ts @@ -8,6 +8,7 @@ export { MetadataApi } from './requests/metadata-api'; export { NoticeApi } from './requests/notice-api'; export { OrganizationApi } from './requests/organization-api'; export { PIDApi } from './requests/pid-api'; +export { QuotaApi } from './requests/quota-api'; export { ProjectApi } from './requests/project-api'; export { ProjectRoleApi } from './requests/project-role-api'; export { ResourceApi } from './requests/resource-api'; diff --git a/src/requests/project-api.ts b/src/requests/project-api.ts index 94e292a3a692d52a276e6b7af6acf0d673fb8b2a..7dc47360ea95d2ff4d1fce47dc5d55dbb0bcd32a 100644 --- a/src/requests/project-api.ts +++ b/src/requests/project-api.ts @@ -50,7 +50,44 @@ export class ProjectApi { ) { apiConnectionBasic.setHeader(); return axios - .get(getProjectApiUrl() + projectId + '/quotas') + .get(getProjectApiUrl() + projectId + '/quota/-/all') + .then(thenHandler) + .catch(catchHandler); + } + public static getQuota( + projectId: string, + resourceTypeId: any, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch + ) { + apiConnectionBasic.setHeader(); + return axios + .get(getProjectApiUrl() + projectId + '/quota/' + resourceTypeId) + .then(thenHandler) + .catch(catchHandler); + } + public static getMaxiumQuota( + projectId: string, + resourceTypeId: any, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch + ) { + apiConnectionBasic.setHeader(); + return axios + .get(getProjectApiUrl() + projectId + '/quota/' + resourceTypeId + '/max') + .then(thenHandler) + .catch(catchHandler); + } + public static setQuota( + projectId: string, + resourceTypeId: string, + body: any, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch + ) { + apiConnectionBasic.setHeader(); + return axios + .post(getProjectApiUrl() + projectId + '/quota/' + resourceTypeId, body) .then(thenHandler) .catch(catchHandler); } diff --git a/src/requests/quota-api.ts b/src/requests/quota-api.ts new file mode 100644 index 0000000000000000000000000000000000000000..7a5573db273ef5454ecca699cdd653b6edabefc7 --- /dev/null +++ b/src/requests/quota-api.ts @@ -0,0 +1,47 @@ +const axios = require('axios'); + +import apiConnectionBasic from '../basic/api-connection-basic'; + +function getQuotaApiUrl() { + return ( + 'https://' + apiConnectionBasic.getHostName() + '/coscine/api/Coscine.Api.Quota/Quota/' + ); +} + +export class QuotaApi { + public static getResourceQuotas( + projectId: string, + resourceTypeId: string, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch + ) { + apiConnectionBasic.setHeader(); + return axios + .get(getQuotaApiUrl() + projectId + '/' + resourceTypeId + '/all') + .then(thenHandler) + .catch(catchHandler); + } + public static getResourceQuota( + resourceId: string, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch + ) { + apiConnectionBasic.setHeader(); + return axios + .get(getQuotaApiUrl() + resourceId) + .then(thenHandler) + .catch(catchHandler); + } + public static setResourceQuota( + resourceId: string, + body: any, + thenHandler: any = apiConnectionBasic.defaultThenHandler, + catchHandler: any = apiConnectionBasic.defaultOnCatch, + ) { + apiConnectionBasic.setHeader(); + return axios + .post(getQuotaApiUrl() + resourceId, body) + .then(thenHandler) + .catch(catchHandler); + } +} diff --git a/yarn.lock-workspace b/yarn.lock-workspace index 0148d6afeac21314a58ccbe87f0092de54ea0244..ad43520afca798d5b99c391ade905c4f0e865669 100644 --- a/yarn.lock-workspace +++ b/yarn.lock-workspace @@ -3201,9 +3201,9 @@ __metadata: linkType: hard "core-js@npm:^3.6.1": - version: 3.8.2 - resolution: "core-js@npm:3.8.2" - checksum: 8fa2c580b77b9d54d3f6ee147be4d9ae01ea6d77f35f16b05962161e9bec02d846449cce4c68b9d190145edc8ded71142f6fd99e35b53fc642b20a3bf47bbd07 + version: 3.8.3 + resolution: "core-js@npm:3.8.3" + checksum: 3c67d1732d505f6afaf836f18038dae8267e8c0e8e84e1c679bac67589e66d0807c24750c7d8b1118cc386c3d66a1d96f20d9cb0f6a879b19cfc04e9f073fe78 languageName: node linkType: hard @@ -4757,7 +4757,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1": +"fs-extra@npm:^9.0.0": version: 9.0.1 resolution: "fs-extra@npm:9.0.1" dependencies: @@ -4769,6 +4769,18 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^9.0.1": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: e667d8df54113b527bf5830dd9db8f142618db488894b329fe07724c7020dfacf8a372b144a74e683ae44e66f56117adca9cac165950dda7d83537c46c10dc4b + languageName: node + linkType: hard + "fs-minipass@npm:^1.2.5": version: 1.2.7 resolution: "fs-minipass@npm:1.2.7" @@ -10558,8 +10570,8 @@ resolve@1.17.0: linkType: hard "rollup@npm:^2.36.1": - version: 2.36.2 - resolution: "rollup@npm:2.36.2" + version: 2.37.0 + resolution: "rollup@npm:2.37.0" dependencies: fsevents: ~2.1.2 dependenciesMeta: @@ -10567,7 +10579,7 @@ resolve@1.17.0: optional: true bin: rollup: dist/bin/rollup - checksum: 65a892680d0da59b77a8174d90ff203bd8f4a34a5ec9d230d9bbf735ecad700426f1e079ed1953cd24bc9c0fcf77aed7219da77db11347222814e8d9364c60cd + checksum: ef944ab73701ae1b8459bbed91f49895db57580413880cbb1727c8eb5fd136f5ec313a7af5093c836d703e0ee7c77fd9ec027af2fe039a37d18dcff2a9b05d6f languageName: node linkType: hard