mirror of
https://github.com/ArthurDanjou/artdanj-api.git
synced 2026-01-14 20:19:26 +01:00
Fix projects descriptions
This commit is contained in:
@@ -3,6 +3,7 @@ import Project from "App/Models/Project";
|
||||
import ProjectStoreValidator from "App/Validators/project/ProjectStoreValidator";
|
||||
import ProjectUpdateValidator from "App/Validators/project/ProjectUpdateValidator";
|
||||
import File from "App/Models/File";
|
||||
import getTranslation from "App/Tasks/getTranslation";
|
||||
|
||||
export default class ProjectsController {
|
||||
|
||||
@@ -11,6 +12,7 @@ export default class ProjectsController {
|
||||
projects: await Project.query()
|
||||
.orderBy('id', 'asc')
|
||||
.preload('cover')
|
||||
.preload('description')
|
||||
.preload('tags')
|
||||
})
|
||||
}
|
||||
@@ -21,6 +23,7 @@ export default class ProjectsController {
|
||||
const cover = await File.findByOrFail('label', data.cover)
|
||||
|
||||
await project.related('cover').associate(cover)
|
||||
await project.related('description').associate(await getTranslation(data.description))
|
||||
await project.related('tags').sync(data.tags!)
|
||||
return response.status(200).send({
|
||||
project
|
||||
@@ -30,6 +33,7 @@ export default class ProjectsController {
|
||||
public async show ({ params, response }: HttpContextContract) {
|
||||
const project = await Project.findOrFail(params.id)
|
||||
await project.load('cover')
|
||||
await project.load('description')
|
||||
await project.load('tags')
|
||||
return response.status(200).send({
|
||||
project
|
||||
@@ -43,6 +47,9 @@ export default class ProjectsController {
|
||||
|
||||
await project.merge(data).save()
|
||||
if (cover) await project.related('cover').associate(cover)
|
||||
|
||||
if (data.description) await project.related('description').associate(await getTranslation(data.description))
|
||||
|
||||
await project.related('tags').sync(data.tags!)
|
||||
return response.status(200).send({
|
||||
project
|
||||
|
||||
@@ -2,6 +2,7 @@ import {DateTime} from 'luxon'
|
||||
import {BaseModel, BelongsTo, belongsTo, column, ManyToMany, manyToMany} from '@ioc:Adonis/Lucid/Orm'
|
||||
import File from "App/Models/File";
|
||||
import Tag from "App/Models/Tag";
|
||||
import Translation from "App/Models/Translation";
|
||||
|
||||
export default class Project extends BaseModel {
|
||||
@column({ isPrimary: true })
|
||||
@@ -10,8 +11,13 @@ export default class Project extends BaseModel {
|
||||
@column()
|
||||
public name: string
|
||||
|
||||
@belongsTo(() => Translation, {
|
||||
foreignKey: 'descriptionId'
|
||||
})
|
||||
public description: BelongsTo<typeof Translation>
|
||||
|
||||
@column()
|
||||
public description: string
|
||||
public descriptionId: number
|
||||
|
||||
@column()
|
||||
public progress: number
|
||||
|
||||
@@ -7,7 +7,11 @@ export default class Projects extends BaseSchema {
|
||||
this.schema.createTable(this.tableName, (table) => {
|
||||
table.increments('id').primary()
|
||||
table.string('name').notNullable()
|
||||
table.string('description').notNullable()
|
||||
table
|
||||
.integer('description_id')
|
||||
.unsigned()
|
||||
.references('translations.id')
|
||||
.onDelete('CASCADE')
|
||||
table.string('url').notNullable()
|
||||
table.integer('progress').notNullable()
|
||||
table
|
||||
|
||||
Reference in New Issue
Block a user