poc_persist.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div>
  3. <h1>POC Persist</h1>
  4. <v-btn v-if="!pending" @click="onUpdateClick">Update access</v-btn>
  5. <v-btn @click="onCreateClick">Create Notification</v-btn>
  6. </div>
  7. </template>
  8. <script setup lang="ts">
  9. import { useEntityManager } from '~/composables/data/useEntityManager'
  10. import { useAccessProfileStore } from '~/stores/accessProfile'
  11. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  12. import Access from '~/models/Access/Access'
  13. import Notification from '~/models/Core/Notification'
  14. definePageMeta({
  15. layout: false,
  16. })
  17. const { em } = useEntityManager()
  18. const accessProfile = useAccessProfileStore()
  19. const accessId = accessProfile.currentAccessId
  20. const { fetch } = useEntityFetch()
  21. const { data: access, pending } = await fetch(Access, accessId)
  22. const onUpdateClick = () => {
  23. if (access.value === null) {
  24. throw new Error('access is null')
  25. }
  26. access.value.updateDate = new Date().toISOString()
  27. console.log(access.value.id, access.value.updateDate)
  28. em.persist(access.value)
  29. }
  30. const onCreateClick = async () => {
  31. const notif = em.newInstance(Notification, { name: 'foo', message: ['bar'] })
  32. // const notif = new Notification({ name: 'foo', message: ['bar'] })
  33. const createdNotif = await em.persist(notif)
  34. console.log(createdNotif)
  35. }
  36. </script>