From 3ba187e602b5a64bcd2436262958420f3e095cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Fri, 18 Dec 2020 19:23:21 +0100 Subject: [PATCH] Create Teks collection --- api/mizik/models/mizik.settings.json | 4 +- api/teks/config/routes.json | 52 +++++++++++++++++++++++++ api/teks/controllers/teks.js | 8 ++++ api/teks/models/teks.js | 25 ++++++++++++ api/teks/models/teks.settings.json | 57 ++++++++++++++++++++++++++++ api/teks/services/teks.js | 8 ++++ 6 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 api/teks/config/routes.json create mode 100644 api/teks/controllers/teks.js create mode 100644 api/teks/models/teks.js create mode 100644 api/teks/models/teks.settings.json create mode 100644 api/teks/services/teks.js diff --git a/api/mizik/models/mizik.settings.json b/api/mizik/models/mizik.settings.json index e867bd9..0141939 100644 --- a/api/mizik/models/mizik.settings.json +++ b/api/mizik/models/mizik.settings.json @@ -32,8 +32,8 @@ "component": "url.liens" }, "awtis": { - "collection": "awtis", - "via": "miziks" + "via": "miziks", + "collection": "awtis" }, "kouteyAchtey": { "type": "component", diff --git a/api/teks/config/routes.json b/api/teks/config/routes.json new file mode 100644 index 0000000..8c1722e --- /dev/null +++ b/api/teks/config/routes.json @@ -0,0 +1,52 @@ +{ + "routes": [ + { + "method": "GET", + "path": "/teks", + "handler": "teks.find", + "config": { + "policies": [] + } + }, + { + "method": "GET", + "path": "/teks/count", + "handler": "teks.count", + "config": { + "policies": [] + } + }, + { + "method": "GET", + "path": "/teks/:id", + "handler": "teks.findOne", + "config": { + "policies": [] + } + }, + { + "method": "POST", + "path": "/teks", + "handler": "teks.create", + "config": { + "policies": [] + } + }, + { + "method": "PUT", + "path": "/teks/:id", + "handler": "teks.update", + "config": { + "policies": [] + } + }, + { + "method": "DELETE", + "path": "/teks/:id", + "handler": "teks.delete", + "config": { + "policies": [] + } + } + ] +} diff --git a/api/teks/controllers/teks.js b/api/teks/controllers/teks.js new file mode 100644 index 0000000..a589b84 --- /dev/null +++ b/api/teks/controllers/teks.js @@ -0,0 +1,8 @@ +'use strict'; + +/** + * Read the documentation (https://strapi.io/documentation/v3.x/concepts/controllers.html#core-controllers) + * to customize this controller + */ + +module.exports = {}; diff --git a/api/teks/models/teks.js b/api/teks/models/teks.js new file mode 100644 index 0000000..1cb8061 --- /dev/null +++ b/api/teks/models/teks.js @@ -0,0 +1,25 @@ +'use strict'; + +const slugify = require('slugify') + +const jwennAwtisEpiId = async data => { + const awtis = await strapi.query('awtis').find({_id: data}) + return awtis.map(a => a.alias).join('-') +} + +module.exports = { + lifecycles: { + beforeCreate: async data => { + if (data.tit) { + const awtis = await jwennAwtisEpiId(data.awtis) + data.slug = slugify(`${awtis}-${data.tit}`, {lower: true, remove: /[*#+~.()'"!:@]/g}) + } + }, + beforeUpdate: async (params, data) => { + if (data.tit) { + const awtis = await jwennAwtisEpiId(data.awtis) + data.slug = slugify(`${awtis}-${data.tit}`, {lower: true, remove: /[*#+~.()'"!:@]/g}) + } + } + } +} diff --git a/api/teks/models/teks.settings.json b/api/teks/models/teks.settings.json new file mode 100644 index 0000000..b3ac7a6 --- /dev/null +++ b/api/teks/models/teks.settings.json @@ -0,0 +1,57 @@ +{ + "kind": "collectionType", + "collectionName": "teks", + "info": { + "name": "Teks", + "description": "" + }, + "options": { + "increments": true, + "timestamps": true, + "draftAndPublish": true + }, + "attributes": { + "tit": { + "type": "string", + "required": true + }, + "transkripsyon": { + "type": "richtext" + }, + "tradiksyon": { + "type": "component", + "repeatable": false, + "component": "trad.traductions" + }, + "lanne": { + "type": "integer" + }, + "lyen": { + "type": "component", + "repeatable": false, + "component": "url.liens" + }, + "awtis": { + "via": "teks", + "collection": "awtis", + "dominant": true + }, + "kouteyAchtey": { + "type": "component", + "repeatable": false, + "component": "store.store" + }, + "slug": { + "type": "string" + }, + "kouveti": { + "model": "file", + "via": "related", + "allowedTypes": [ + "images" + ], + "plugin": "upload", + "required": false + } + } +} diff --git a/api/teks/services/teks.js b/api/teks/services/teks.js new file mode 100644 index 0000000..1f5330e --- /dev/null +++ b/api/teks/services/teks.js @@ -0,0 +1,8 @@ +'use strict'; + +/** + * Read the documentation (https://strapi.io/documentation/v3.x/concepts/services.html#core-services) + * to customize this service + */ + +module.exports = {};