From d70f98bf481aedc81df8aed0369ce1951b04acab Mon Sep 17 00:00:00 2001 From: Settel Date: Sat, 16 Oct 2021 21:35:31 +0200 Subject: [PATCH] update list of quotes after create/delete --- client/src/components/CollectQuote.vue | 19 ++++++++++--------- server/src/game/removeQuote.go | 14 ++++++++++++-- server/src/game/saveQuote.go | 1 + 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/client/src/components/CollectQuote.vue b/client/src/components/CollectQuote.vue index 4646def..9533a55 100644 --- a/client/src/components/CollectQuote.vue +++ b/client/src/components/CollectQuote.vue @@ -14,18 +14,19 @@ export default { props: ['quote'], methods: { - edit() { - console.log('edit') - this.save() + async edit() { + await this.save() }, - save() { - console.log('save') - // this.$engine.createQuote(this.quote.quote) + async save() { + this.$engine.createQuote(this.quote.quote) // this.$engine.saveQuote(this.quote.id, this.quote.quote) - // this.$engine.removeQuote(this.quote.id) + await this.$engine.getMyQuotes() }, - remove() { - console.log('remove') + async remove() { + if (confirm('Eintrag wirklich löschen?')) { + this.$engine.removeQuote(this.quote.id) + await this.$engine.getMyQuotes() + } }, }, } diff --git a/server/src/game/removeQuote.go b/server/src/game/removeQuote.go index bf865ec..51be54b 100644 --- a/server/src/game/removeQuote.go +++ b/server/src/game/removeQuote.go @@ -3,15 +3,18 @@ package game import ( "fmt" "os" + "sirlab.de/go/knyt/quote" ) func (gm *Game) RemoveQuote(fileName, usrId, quoteId string) error { - if quote, err := gm.getQuoteById(quoteId); err != nil { + if qu, err := gm.getQuoteById(quoteId); err != nil { return err } else { - if quote.GetSourceId() != usrId { + if qu.GetSourceId() != usrId { return fmt.Errorf("usrId does not match quote source id") } + + gm.removeQuoteFromList(qu) } err := os.Remove(fileName) @@ -21,3 +24,10 @@ func (gm *Game) RemoveQuote(fileName, usrId, quoteId string) error { return nil } + +func (gm *Game) removeQuoteFromList(qu *quote.Quote) { + gm.mu.Lock() + defer gm.mu.Unlock() + + delete(gm.quotes, qu.GetId()) +} diff --git a/server/src/game/saveQuote.go b/server/src/game/saveQuote.go index bceceb1..cb2d6a5 100644 --- a/server/src/game/saveQuote.go +++ b/server/src/game/saveQuote.go @@ -7,6 +7,7 @@ import ( func (gm *Game) CreateQuote(fileName, usrId, quoteId, quoteText string) error { qu := quote.NewQuote(quoteId, usrId, quoteText) + gm.AddQuote(qu) return qu.Save(fileName) }