From 19b1b35a7491ce9bae95565655a64b17565ade96 Mon Sep 17 00:00:00 2001
From: Marcel Nellesen <nellesen@itc.rwth-aachen.de>
Date: Thu, 28 Jan 2021 14:47:51 +0100
Subject: [PATCH] Update: Included QuotaApi functions
---
package.json | 2 +-
src/api-connection.ts | 1 +
src/requests/project-api.ts | 39 +++++++++++++++++++++++++++++-
src/requests/quota-api.ts | 47 +++++++++++++++++++++++++++++++++++++
yarn.lock-workspace | 26 ++++++++++++++------
5 files changed, 106 insertions(+), 9 deletions(-)
create mode 100644 src/requests/quota-api.ts
diff --git a/package.json b/package.json
index 0a10cac..ab8d9d5 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 a044f56..9a7a81b 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 94e292a..7dc4736 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 0000000..7a5573d
--- /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 0148d6a..ad43520 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
--
GitLab