- {{ label }}
+
+
-
-
-
-
+ />
diff --git a/frontend/src/services/bucketService.ts b/frontend/src/services/bucketService.ts
index 471bea02..741182dc 100644
--- a/frontend/src/services/bucketService.ts
+++ b/frontend/src/services/bucketService.ts
@@ -1,4 +1,5 @@
import { comsAxios } from './interceptors';
+import type { Bucket } from '@/interfaces';
const BUCKET_PATH = 'bucket';
@@ -12,4 +13,24 @@ export default {
searchForBuckets(params?: Object) {
return comsAxios().get(`${BUCKET_PATH}`, { params: params });
},
+
+ /**
+ * @function createBucket
+ * Creates a bucket
+ * @param {Bucket} data Bucket object containing the data to create bucket
+ * @returns {Promise} An axios response
+ */
+ createBucket(data: Bucket) {
+ return comsAxios().put(`${BUCKET_PATH}`, data);
+ },
+
+ /**
+ * @function updateBucket
+ * Updates a bucket
+ * @param {Bucket} data Bucket object containing the data to update bucket
+ * @returns {Promise} An axios response
+ */
+ updateBucket(bucketId: string, data: Bucket) {
+ return comsAxios().patch(`${BUCKET_PATH}/${bucketId}`, data);
+ }
};
diff --git a/frontend/src/store/bucketStore.ts b/frontend/src/store/bucketStore.ts
index 8207ea6d..f2a30455 100644
--- a/frontend/src/store/bucketStore.ts
+++ b/frontend/src/store/bucketStore.ts
@@ -160,6 +160,26 @@ export const useBucketStore = defineStore('bucket', () => {
}
}
+ async function createBucket(bucket: Bucket) {
+ try {
+ loading.value = true;
+
+ return (await bucketService.createBucket(bucket)).data;
+ } finally {
+ loading.value = false;
+ }
+ }
+
+ async function updateBucket(bucketId: string, bucket: Bucket) {
+ try {
+ loading.value = true;
+
+ return (await bucketService.updateBucket(bucketId, bucket)).data;
+ } finally {
+ loading.value = false;
+ }
+ }
+
return {
loading,
load,
@@ -169,6 +189,8 @@ export const useBucketStore = defineStore('bucket', () => {
addBucketPermission,
deleteBucketPermission,
removeBucketUser,
+ createBucket,
+ updateBucket,
buckets,
permissions,
selectedBucketPermissionsForUser
diff --git a/frontend/src/utils/constants.ts b/frontend/src/utils/constants.ts
index 5c68b8d2..f38e4095 100644
--- a/frontend/src/utils/constants.ts
+++ b/frontend/src/utils/constants.ts
@@ -30,3 +30,8 @@ export const RouteNames = Object.freeze({
export const ValidationMessages = Object.freeze({
Required: 'This field is required.',
});
+
+export const BucketConfig = Object.freeze({
+ headerNewBucket: 'Configure bucket',
+ titleNewBucket: 'Use this form to configure a bucket to be used in BCBox for the first time.'
+});