From 4085868cd749540082b1cc00999627b1a692329f Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 21 Feb 2022 21:26:12 +0000 Subject: [PATCH 1/5] Update register to tailwindcss --- web/src/pages/Login.vue | 14 ++----- web/src/pages/Register.vue | 80 +++++++++++++++----------------------- 2 files changed, 36 insertions(+), 58 deletions(-) diff --git a/web/src/pages/Login.vue b/web/src/pages/Login.vue index 000c7a9..12a824f 100644 --- a/web/src/pages/Login.vue +++ b/web/src/pages/Login.vue @@ -26,18 +26,12 @@ function formSubmit(e: MouseEvent) { \ No newline at end of file From e9d4ed1b3ea91b10c9e96d8f86ecbfe297e9269d Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 21 Feb 2022 21:40:36 +0000 Subject: [PATCH 2/5] Fix router initialization in eventhandler useRouter has to be called in setup or returns undefined otherwise. See https://github.com/vuejs/vue-router/issues/3379 --- web/src/pages/Login.vue | 4 +++- web/src/stores/session.ts | 13 ++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/web/src/pages/Login.vue b/web/src/pages/Login.vue index 12a824f..d7169c1 100644 --- a/web/src/pages/Login.vue +++ b/web/src/pages/Login.vue @@ -5,6 +5,7 @@ import { useSessionStore } from "../stores/session"; const error = ref(""); const login = ref({ user: "", password: "" }); +const router = useRouter(); // has to be called in setup onMounted(() => { useSessionStore().setTitle("Login"); @@ -15,7 +16,8 @@ function formSubmit(e: MouseEvent) { useSessionStore().login(login.value) .then(x => { error.value = ""; - useRouter().replace("/dashboard"); + router.replace("/dashboard"); + return x; }) .catch(x => error.value = "The entered credentials are invalid!"); diff --git a/web/src/stores/session.ts b/web/src/stores/session.ts index 0af99cd..49a2807 100644 --- a/web/src/stores/session.ts +++ b/web/src/stores/session.ts @@ -20,12 +20,12 @@ export interface Budget { export const useSessionStore = defineStore('session', { state: () => ({ - Session: useStorage('session', null, undefined, { serializer: StorageSerializers.object }), + Session: useStorage('session', null, undefined, { serializer: StorageSerializers.object }), Budgets: useStorage>('budgets', new Map(), undefined, { serializer: StorageSerializers.map }), }), getters: { BudgetsList: (state) => [ ...state.Budgets.values() ], - AuthHeaders: (state) => ({'Authorization': 'Bearer ' + state.Session.Token}), + AuthHeaders: (state) => ({'Authorization': 'Bearer ' + state.Session?.Token}), LoggedIn: (state) => state.Session != null, }, actions: { @@ -42,15 +42,18 @@ export const useSessionStore = defineStore('session', { async login(login: any) { const response = await POST("/user/login", JSON.stringify(login)); const result = await response.json(); - return this.loginSuccess(result); + this.loginSuccess(result); + return result; }, async register(login : any) { const response = await POST("/user/register", JSON.stringify(login)); const result = await response.json(); - return this.loginSuccess(result); + this.loginSuccess(result); + return result; }, logout() { - this.$reset() + this.Session = null; + this.Budgets.clear(); }, } }) \ No newline at end of file From ffabf1bca99f74033a9c8998ea4f32f3a6ede8b4 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 21 Feb 2022 21:41:24 +0000 Subject: [PATCH 3/5] Also fix in register --- web/src/pages/Register.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web/src/pages/Register.vue b/web/src/pages/Register.vue index 6b3e172..7d6826e 100644 --- a/web/src/pages/Register.vue +++ b/web/src/pages/Register.vue @@ -5,6 +5,7 @@ import { useSessionStore } from "../stores/session"; const error = ref(""); const login = ref({ email: "", password: "", name: "" }); +const router = useRouter(); // has to be called in setup onMounted(() => { useSessionStore().setTitle("Login"); @@ -15,7 +16,8 @@ function formSubmit(e: MouseEvent) { useSessionStore().register(login.value) .then(x => { error.value = ""; - useRouter().replace("/dashboard"); + router.replace("/dashboard"); + return x; }) .catch(x => error.value = "The entered credentials are invalid!"); From a4ca21bb37dae81d289af592c0989d135d92e388 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 21 Feb 2022 21:42:16 +0000 Subject: [PATCH 4/5] Add missing spaces --- web/src/pages/Login.vue | 2 +- web/src/pages/Register.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/pages/Login.vue b/web/src/pages/Login.vue index d7169c1..0c7ca26 100644 --- a/web/src/pages/Login.vue +++ b/web/src/pages/Login.vue @@ -39,6 +39,6 @@ function formSubmit(e: MouseEvent) {

New user? - Registerinstead! + Register instead!

\ No newline at end of file diff --git a/web/src/pages/Register.vue b/web/src/pages/Register.vue index 7d6826e..42ff644 100644 --- a/web/src/pages/Register.vue +++ b/web/src/pages/Register.vue @@ -42,6 +42,6 @@ function formSubmit(e: MouseEvent) {

Existing user? - Logininstead! + Login instead!

\ No newline at end of file From 484b1062e1d72f88914753708d975c20633594c9 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 22 Feb 2022 13:42:44 +0000 Subject: [PATCH 5/5] Fix returning number as string for numbers --- postgres/numeric.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/postgres/numeric.go b/postgres/numeric.go index b4e5631..f750a7b 100644 --- a/postgres/numeric.go +++ b/postgres/numeric.go @@ -94,7 +94,7 @@ func (n Numeric) Add(other Numeric) Numeric { func (n Numeric) MarshalJSON() ([]byte, error) { if n.Int.Int64() == 0 { - return []byte("\"0\""), nil + return []byte("0"), nil } s := fmt.Sprintf("%d", n.Int)