69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import { get, post } from '$lib/api';
|
|
import { t } from '$lib/translations';
|
|
import { errorNotification } from '$lib/common';
|
|
|
|
type Props = {
|
|
isNew: boolean;
|
|
name: string;
|
|
value: string;
|
|
isBuildSecret?: boolean;
|
|
isPRMRSecret?: boolean;
|
|
isNewSecret?: boolean;
|
|
serviceId: string;
|
|
};
|
|
|
|
export async function saveSecret({
|
|
isNew,
|
|
name,
|
|
value,
|
|
isBuildSecret,
|
|
isPRMRSecret,
|
|
isNewSecret,
|
|
serviceId
|
|
}: Props): Promise<void> {
|
|
if (!name) return errorNotification(`${t.get('forms.name')} ${t.get('forms.is_required')}`);
|
|
if (!value) return errorNotification(`${t.get('forms.value')} ${t.get('forms.is_required')}`);
|
|
try {
|
|
await post(`/services/${serviceId}/secrets`, {
|
|
name,
|
|
value,
|
|
isBuildSecret,
|
|
isPRMRSecret,
|
|
isNew: isNew || false
|
|
});
|
|
if (isNewSecret) {
|
|
name = '';
|
|
value = '';
|
|
isBuildSecret = false;
|
|
}
|
|
} catch (error) {
|
|
throw error
|
|
}
|
|
}
|
|
|
|
export async function saveForm(formData: any, service: any) {
|
|
const settings = service.serviceSetting.map((setting: { name: string }) => setting.name);
|
|
const baseCoolifySetting = ['name', 'fqdn', 'exposePort'];
|
|
for (let field of formData) {
|
|
const [key, value] = field;
|
|
service.serviceSetting = service.serviceSetting.map((setting: any) => {
|
|
if (setting.name === key) {
|
|
setting.changed = true;
|
|
setting.value = value;
|
|
}
|
|
return setting;
|
|
});
|
|
// if (!settings.includes(key) && !baseCoolifySetting.includes(key)) {
|
|
// service.serviceSetting.push({
|
|
// id: service.id,
|
|
// name: key,
|
|
// value: value,
|
|
// isNew: true
|
|
// });
|
|
// }
|
|
}
|
|
await post(`/services/${service.id}`, { ...service });
|
|
const { service: reloadedService } = await get(`/services/${service.id}`);
|
|
return reloadedService;
|
|
|
|
}
|