aggiunto segnapreso senza auth
This commit is contained in:
parent
4c05e40a73
commit
4806feadeb
6 changed files with 61 additions and 2 deletions
2
TODO.md
2
TODO.md
|
@ -10,6 +10,6 @@
|
|||
- [ ] un loading per next / prev
|
||||
- [ ] immagine del banner da scaricare in locale
|
||||
- [ ] favicon (solo perche' senza ci mette un sacco a fare il load)
|
||||
- [ ] ci vuole un modo per segnare che un oggetto e' stato preso? forse no se facciamo un'asta live
|
||||
- [x] ci vuole un modo per segnare che un oggetto e' stato preso? forse no se facciamo un'asta live
|
||||
- [ ] deploy
|
||||
- [ ] mail in lista
|
||||
|
|
|
@ -20,5 +20,6 @@ const { cosetta } = defineProps({
|
|||
class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2"
|
||||
v-text='tag' />
|
||||
</div>
|
||||
<toggleTaken :cosetta='cosetta'/>
|
||||
</div>
|
||||
</template>
|
||||
|
|
25
components/toggleTaken.vue
Normal file
25
components/toggleTaken.vue
Normal file
|
@ -0,0 +1,25 @@
|
|||
<script setup>
|
||||
const { cosetta } = defineProps({
|
||||
cosetta: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
})
|
||||
|
||||
watch(cosetta, () => { deep: true });
|
||||
|
||||
let toggleTaken = async () => {
|
||||
const ret = await $fetch(`/api/cosetta/${cosetta.uuid}/taken`, { method: 'POST' })
|
||||
const q = await $fetch(`/api/cosetta/${cosetta.uuid}`)
|
||||
cosetta.taken = q.cosetta.taken
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<div class="form-control">
|
||||
<label class="label cursor-pointer flex justify-end">
|
||||
<span class="label-text px-4" v-html="cosetta.taken && 'Cosetta disponibile' || 'Cosetta assegnata'">
|
||||
</span>
|
||||
<input type="checkbox" class="toggle toggle-lg" @click='toggleTaken' :checked='cosetta.taken' />
|
||||
</label>
|
||||
</div>
|
||||
</template>
|
|
@ -39,6 +39,9 @@ onMounted(() => {
|
|||
</div>
|
||||
|
||||
<div class="container mx-auto">
|
||||
|
||||
<toggleTaken :cosetta='cosetta'/>
|
||||
|
||||
<p class="font-bold text-xl uppercase">chiacchiere</p>
|
||||
<div class='form-control'>
|
||||
<div class='input-group'>
|
||||
|
|
25
server/api/cosetta/[uuid]/taken.post.js
Normal file
25
server/api/cosetta/[uuid]/taken.post.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { toggleTaken } from '../../../controller'
|
||||
import { useBody } from 'h3'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const body = await useBody(event)
|
||||
const taken = toggleTaken(event.context.params.uuid)
|
||||
return { success: true, taken }
|
||||
} catch (e) {
|
||||
return { success: false, reason: e.message }
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// import { setTaken } from '../../controller'
|
||||
//
|
||||
// export default defineEventHandler(async (event) => {
|
||||
// try {
|
||||
// const body = await useBody(event)
|
||||
// const taken = setTaken(event.context.params.uuid)
|
||||
// return { success: true, taken }
|
||||
// } catch (e) {
|
||||
// return { success: false, reason: e.message }
|
||||
// }
|
||||
// })
|
|
@ -6,7 +6,7 @@ const db = new Database('./cosette.db')
|
|||
|
||||
export function load() {
|
||||
db.pragma('journal_mode = WAL')
|
||||
db.exec('CREATE TABLE IF NOT EXISTS cosette (uuid TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, tags TEXT, images TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
||||
db.exec('CREATE TABLE IF NOT EXISTS cosette (uuid TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, tags TEXT, images TEXT, taken TINYINT DEFAULT 0, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
||||
db.exec('CREATE INDEX IF NOT EXISTS cosette_updated_at_index ON cosette (updatedAt)')
|
||||
db.exec('CREATE TABLE IF NOT EXISTS chan (uuid TEXT PRIMARY KEY, cosetta_uuid REFERENCES cosette(uuid), message TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
||||
}
|
||||
|
@ -70,3 +70,8 @@ export function getComment(uuid) {
|
|||
const comment = q.get(uuid)
|
||||
return comment
|
||||
}
|
||||
|
||||
export function toggleTaken(uuid) {
|
||||
const q = db.prepare('UPDATE cosette SET taken = ABS(taken - 1) WHERE uuid = ?')
|
||||
return q.run(uuid)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue