feat [both]: separate public and admin routes
This commit is contained in:
parent
0edfb4b336
commit
0d6b6d41e5
7 changed files with 35 additions and 13 deletions
|
@ -14,11 +14,11 @@ const id = route.params.id
|
|||
|
||||
const film = reactive<Film>({})
|
||||
|
||||
Object.assign(film, (await apiGet(`films/${id}/`)).data.value)
|
||||
Object.assign(film, (await apiGet(`admin/films/${id}/`)).data.value)
|
||||
// TODO manage errors
|
||||
|
||||
async function save(publish: boolean) {
|
||||
const { data } = await apiPatch(`films/${id}/`, {
|
||||
const { data } = await apiPatch(`admin/films/${id}/`, {
|
||||
...film,
|
||||
isConfirmed: publish,
|
||||
})
|
||||
|
|
|
@ -77,7 +77,7 @@ const id = route.params.id
|
|||
|
||||
const film = reactive<Film>({})
|
||||
|
||||
Object.assign(film, (await apiGet(`films/${id}/`)).data.value)
|
||||
Object.assign(film, (await apiGet(`admin/films/${id}/`)).data.value)
|
||||
|
||||
const tags = computed(() => {
|
||||
const base = [
|
||||
|
|
|
@ -24,5 +24,5 @@ definePageMeta({
|
|||
|
||||
const films = reactive<ShortFilm[]>([])
|
||||
|
||||
Object.assign(films, (await apiGet("films/")).data.value)
|
||||
Object.assign(films, (await apiGet("admin/films/")).data.value)
|
||||
</script>
|
||||
|
|
|
@ -14,13 +14,13 @@ const film = reactive<Film>({})
|
|||
const { $api } = useNuxtApp()
|
||||
|
||||
async function post() {
|
||||
return await $api.post("films/", { ...film, isConfirmed: true })
|
||||
return await $api.post("admin/films/", { ...film, isConfirmed: true })
|
||||
// TODO redirect to list ? to edit ?
|
||||
}
|
||||
|
||||
async function publish() {
|
||||
// TODO validate ? let API do the job ?
|
||||
return await $api.post("films/", { ...film, isConfirmed: false })
|
||||
return await $api.post("admin/films/", { ...film, isConfirmed: false })
|
||||
// TODO redirect to list ? to edit ?
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,16 +1,24 @@
|
|||
<template>
|
||||
<section class="section">
|
||||
<h2 class="title">La semaine prochaine</h2>
|
||||
<MovieCardFull :film="nextFilm" />
|
||||
<MovieCardFull :film="firstFilm" />
|
||||
</section>
|
||||
<section class="section">
|
||||
<h2 class="title">Et après</h2>
|
||||
<MovieCardFull
|
||||
v-for="film of nextFilms"
|
||||
:key="film.id"
|
||||
:film="film"
|
||||
class="block"
|
||||
/>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Film } from "~/composables/types"
|
||||
|
||||
const nextFilm = ref<Film>()
|
||||
nextFilm.value = (await apiGet(`films/1/`)).data.value
|
||||
const films = ref<Film[]>()
|
||||
films.value = (await apiGet<Film[]>(`films/`)).data.value
|
||||
const firstFilm = computed(() => films.value[0])
|
||||
const nextFilms = computed(() => films.value.slice(1))
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue