From efa89313fa4152252b477aafd88f7cf4a66747d8 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 5 Feb 2026 10:19:56 +0000 Subject: Initial Strapi plugin project --- .../api/article/content-types/article/schema.json | 49 ++++++++++++++++++++++ playground/src/api/article/controllers/article.ts | 7 ++++ playground/src/api/article/routes/article.ts | 7 ++++ playground/src/api/article/services/article.ts | 7 ++++ 4 files changed, 70 insertions(+) create mode 100644 playground/src/api/article/content-types/article/schema.json create mode 100644 playground/src/api/article/controllers/article.ts create mode 100644 playground/src/api/article/routes/article.ts create mode 100644 playground/src/api/article/services/article.ts (limited to 'playground/src/api/article') diff --git a/playground/src/api/article/content-types/article/schema.json b/playground/src/api/article/content-types/article/schema.json new file mode 100644 index 0000000..8df8823 --- /dev/null +++ b/playground/src/api/article/content-types/article/schema.json @@ -0,0 +1,49 @@ +{ + "kind": "collectionType", + "collectionName": "articles", + "info": { + "singularName": "article", + "pluralName": "articles", + "displayName": "Article", + "description": "Create your blog content" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "title": { + "type": "string" + }, + "description": { + "type": "text", + "maxLength": 80 + }, + "slug": { + "type": "uid", + "targetField": "title" + }, + "cover": { + "type": "media", + "multiple": false, + "required": false, + "allowedTypes": ["images", "files", "videos"] + }, + "author": { + "type": "relation", + "relation": "manyToOne", + "target": "api::author.author", + "inversedBy": "articles" + }, + "category": { + "type": "relation", + "relation": "manyToOne", + "target": "api::category.category", + "inversedBy": "articles" + }, + "blocks": { + "type": "dynamiczone", + "components": ["shared.media", "shared.quote", "shared.rich-text", "shared.slider"] + } + } +} diff --git a/playground/src/api/article/controllers/article.ts b/playground/src/api/article/controllers/article.ts new file mode 100644 index 0000000..8b9d100 --- /dev/null +++ b/playground/src/api/article/controllers/article.ts @@ -0,0 +1,7 @@ +/** + * article controller + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreController('api::article.article'); diff --git a/playground/src/api/article/routes/article.ts b/playground/src/api/article/routes/article.ts new file mode 100644 index 0000000..a018052 --- /dev/null +++ b/playground/src/api/article/routes/article.ts @@ -0,0 +1,7 @@ +/** + * article router. + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::article.article'); diff --git a/playground/src/api/article/services/article.ts b/playground/src/api/article/services/article.ts new file mode 100644 index 0000000..4f14efa --- /dev/null +++ b/playground/src/api/article/services/article.ts @@ -0,0 +1,7 @@ +/** + * article service. + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::article.article'); -- cgit v1.2.3