diff --git a/src/lib/config.js b/src/lib/config.js
index ba0a39d..4335536 100644
--- a/src/lib/config.js
+++ b/src/lib/config.js
@@ -1,3 +1,3 @@
export const config = {
- api_url: "http://localhost:3000"
+ api_url: "http://api.omersabic.com:3001"
}
\ No newline at end of file
diff --git a/src/routes/(app)/articles/+page.server.js b/src/routes/(app)/articles/+page.server.js
index 5750071..8427e06 100644
--- a/src/routes/(app)/articles/+page.server.js
+++ b/src/routes/(app)/articles/+page.server.js
@@ -1,6 +1,6 @@
import { config } from "$lib"
-import { superValidate } from "sveltekit-superforms";
-import { formSchema } from "./schema";
+import { message, superValidate } from "sveltekit-superforms";
+import { createFormSchema, editFormSchema } from "./schema";
import { zod } from "sveltekit-superforms/adapters";
import { fail } from "@sveltejs/kit";
@@ -20,17 +20,16 @@ export const load = async ({ fetch }) => {
articles: dataBlog.articles,
site: dataBlog.site,
videos: dataVideos.videos,
- form: await superValidate(zod(formSchema)),
+ createForm: await superValidate(zod(createFormSchema)),
+ editForm: await superValidate(zod(editFormSchema))
}
}
/** @type {import("@sveltejs/kit").Actions} */
export const actions = {
- default: async (event) => {
+ create: async (event) => {
console.log("creating article...")
- const form = await superValidate(event, zod(formSchema));
- console.log(form.data)
- console.log(form.valid)
+ const form = await superValidate(event, zod(createFormSchema));
if (!form.valid) {
return fail(400, {
form,
@@ -44,11 +43,36 @@ export const actions = {
}
});
- console.log(res.status)
- console.log(await res.json())
-
return {
form,
};
+ },
+ edit: async (event) => {
+ const form = await superValidate(event, zod(editFormSchema));
+ if (!form.valid) {
+ return fail(400, {
+ form,
+ });
+ }
+
+ const res = await event.fetch(config.api_url + "/blog/article", {
+ method: "PUT",
+ body: JSON.stringify(form.data),
+ headers: {
+ "content-type": "application/json"
+ }
+ });
+ const resData = await res.json();
+
+ if(!resData.success) {
+ return fail(400, {
+ form,
+ message: resData.message || ""
+ });
+ }
+
+ return {
+ form
+ }
}
};
\ No newline at end of file
diff --git a/src/routes/(app)/articles/+page.svelte b/src/routes/(app)/articles/+page.svelte
index 73ad55f..7487691 100644
--- a/src/routes/(app)/articles/+page.svelte
+++ b/src/routes/(app)/articles/+page.svelte
@@ -4,7 +4,7 @@
import TooltipButton from '$lib/components/molecules/tooltipbutton.svelte';
- import { formSchema } from './schema';
+ import { createFormSchema } from './schema';
import { superForm } from 'sveltekit-superforms';
import { zodClient } from 'sveltekit-superforms/adapters';
import { toast } from 'svelte-sonner';
@@ -15,8 +15,8 @@
export let data;
let isDialogOpen = false;
- const form = superForm(data.form, {
- validators: zodClient(formSchema)
+ const form = superForm(data.createForm, {
+ validators: zodClient(createFormSchema)
});
function submitArticle() {
@@ -24,7 +24,7 @@
toast('Article is queued for generation.');
}
- /** @type {object | null} */
+ /** @type {import("./schema.js").ArticleData | null} */
let editingContent = null;
/**
@@ -74,6 +74,6 @@
-
+ Manually edit your article with Markdown +
+