feat: Preview secrets

chore: version++
This commit is contained in:
Andras Bacsai
2022-02-19 14:54:47 +01:00
parent e51a8d43d9
commit 15e69c538a
8 changed files with 120 additions and 25 deletions

View File

@@ -3,6 +3,11 @@
export let value = '';
export let isBuildSecret = false;
export let isNewSecret = false;
export let isPRMRSecret = false;
export let PRMRSecret = {};
if (isPRMRSecret) value = PRMRSecret.value;
import { page } from '$app/stores';
import { del, post } from '$lib/api';
import { errorNotification } from '$lib/form';
@@ -36,7 +41,7 @@
}
try {
await post(`/applications/${id}/secrets.json`, { name, value, isBuildSecret });
await post(`/applications/${id}/secrets.json`, { name, value, isBuildSecret, isPRMRSecret });
dispatch('refresh');
if (isNewSecret) {
name = '';
@@ -75,9 +80,9 @@
required
placeholder="J$#@UIO%HO#$U%H"
class="-mx-2 w-64 border-2 border-transparent"
class:bg-transparent={!isNewSecret}
class:cursor-not-allowed={!isNewSecret}
readonly={!isNewSecret}
class:bg-transparent={!isNewSecret && !isPRMRSecret}
class:cursor-not-allowed={!isNewSecret && !isPRMRSecret}
readonly={!isNewSecret && !isPRMRSecret}
/>
</td>
<td class="whitespace-nowrap px-6 py-2 text-center text-sm font-medium text-white">
@@ -134,6 +139,10 @@
<div class="flex items-center justify-center">
<button class="w-24 bg-green-600 hover:bg-green-500" on:click={saveSecret}>Add</button>
</div>
{:else if isPRMRSecret}
<div class="flex items-center justify-center">
<button class="w-24 bg-green-600 hover:bg-green-500" on:click={saveSecret}>Set</button>
</div>
{:else}
<div class="flex justify-center items-end">
<button class="w-24 bg-red-600 hover:bg-red-500" on:click={removeSecret}>Remove</button>

View File

@@ -7,8 +7,9 @@ export const get: RequestHandler = async (event) => {
const { teamId, status, body } = await getUserDetails(event);
if (status === 401) return { status, body };
const { id } = event.params;
try {
const secrets = await db.listSecrets({ applicationId: event.params.id });
const secrets = await (await db.listSecrets(id)).filter((secret) => !secret.isPRMRSecret);
return {
status: 200,
body: {
@@ -27,16 +28,23 @@ export const post: RequestHandler = async (event) => {
if (status === 401) return { status, body };
const { id } = event.params;
const { name, value, isBuildSecret } = await event.request.json();
const { name, value, isBuildSecret, isPRMRSecret } = await event.request.json();
try {
const found = await db.isSecretExists({ id, name });
if (found) {
throw {
error: `Secret ${name} already exists.`
};
if (!isPRMRSecret) {
const found = await db.isSecretExists({ id, name, isPRMRSecret });
if (found) {
throw {
error: `Secret ${name} already exists.`
};
} else {
await db.createSecret({ id, name, value, isBuildSecret, isPRMRSecret });
return {
status: 201
};
}
} else {
await db.createSecret({ id, name, value, isBuildSecret });
await db.updateSecret({ id, name, value, isBuildSecret, isPRMRSecret });
return {
status: 201
};