fix: allow admin to edit any booking via admin endpoint
This commit is contained in:
@@ -81,15 +81,18 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, watch, computed } from 'vue'
|
import { ref, watch, computed } from 'vue'
|
||||||
import { bookingsApi, handleApiError } from '@/services/api'
|
import { bookingsApi, adminBookingsApi, handleApiError } from '@/services/api'
|
||||||
import { useAuthStore } from '@/stores/auth'
|
import { useAuthStore } from '@/stores/auth'
|
||||||
import { isoToLocalDateTime, localDateTimeToISO } from '@/utils/datetime'
|
import { isoToLocalDateTime, localDateTimeToISO } from '@/utils/datetime'
|
||||||
import type { Booking } from '@/types'
|
import type { Booking } from '@/types'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
booking: Booking | null
|
booking: Booking | null
|
||||||
show: boolean
|
show: boolean
|
||||||
}>()
|
isAdmin?: boolean
|
||||||
|
}>(), {
|
||||||
|
isAdmin: false
|
||||||
|
})
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
close: []
|
close: []
|
||||||
@@ -141,12 +144,18 @@ const saveEdit = async () => {
|
|||||||
const startDateTime = `${editForm.value.start_date}T${editForm.value.start_time}`
|
const startDateTime = `${editForm.value.start_date}T${editForm.value.start_time}`
|
||||||
const endDateTime = `${editForm.value.end_date}T${editForm.value.end_time}`
|
const endDateTime = `${editForm.value.end_date}T${editForm.value.end_time}`
|
||||||
|
|
||||||
await bookingsApi.update(props.booking.id, {
|
const updateData = {
|
||||||
title: editForm.value.title,
|
title: editForm.value.title,
|
||||||
description: editForm.value.description,
|
description: editForm.value.description,
|
||||||
start_datetime: localDateTimeToISO(startDateTime),
|
start_datetime: localDateTimeToISO(startDateTime),
|
||||||
end_datetime: localDateTimeToISO(endDateTime)
|
end_datetime: localDateTimeToISO(endDateTime)
|
||||||
})
|
}
|
||||||
|
|
||||||
|
if (props.isAdmin) {
|
||||||
|
await adminBookingsApi.update(props.booking.id, updateData)
|
||||||
|
} else {
|
||||||
|
await bookingsApi.update(props.booking.id, updateData)
|
||||||
|
}
|
||||||
emit('saved')
|
emit('saved')
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
editError.value = handleApiError(err)
|
editError.value = handleApiError(err)
|
||||||
|
|||||||
@@ -230,6 +230,7 @@
|
|||||||
<BookingEditModal
|
<BookingEditModal
|
||||||
:booking="editingBooking"
|
:booking="editingBooking"
|
||||||
:show="showEditModal"
|
:show="showEditModal"
|
||||||
|
:is-admin="isAdmin"
|
||||||
@close="closeEditModal"
|
@close="closeEditModal"
|
||||||
@saved="onEditSaved"
|
@saved="onEditSaved"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user