From 6b7e1ae073ae2a0d8d013c787b7c226d62b66981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20Gr=C3=B8tan=20Gregusson?= <55840686+Jakobgg1243@users.noreply.github.com> Date: Mon, 29 Jan 2024 13:57:42 +0100 Subject: [PATCH] 53 functionality for adding partner data in strapi (#55) * feat(backend): :sparkles: Create partner content type * feat(frontend): :sparkles: Map backend partner data to partner page Used graphql query to map backend partner data to the partner page * style(frontend): :lipstick: Change the width for all cards in partner page to have the same width. * fix(frontend): :bug: Export edge runtime --------- Co-authored-by: Lucas Tran --- .../partner/content-types/partner/schema.json | 35 + .../src/api/partner/controllers/partner.js | 9 + .../partner/documentation/1.0.0/partner.json | 507 +++++ backend/src/api/partner/routes/partner.js | 9 + backend/src/api/partner/services/partner.js | 9 + .../1.0.0/full_documentation.json | 1692 +++++++++++++++-- .../documentation/public/index.html | 2 +- backend/types/generated/contentTypes.d.ts | 34 + frontend/next.config.mjs | 2 +- frontend/src/__generated__/gql.ts | 5 + frontend/src/__generated__/graphql.ts | 91 +- frontend/src/app/(about)/partners/page.tsx | 124 +- 12 files changed, 2266 insertions(+), 253 deletions(-) create mode 100644 backend/src/api/partner/content-types/partner/schema.json create mode 100644 backend/src/api/partner/controllers/partner.js create mode 100644 backend/src/api/partner/documentation/1.0.0/partner.json create mode 100644 backend/src/api/partner/routes/partner.js create mode 100644 backend/src/api/partner/services/partner.js diff --git a/backend/src/api/partner/content-types/partner/schema.json b/backend/src/api/partner/content-types/partner/schema.json new file mode 100644 index 0000000..78e0e65 --- /dev/null +++ b/backend/src/api/partner/content-types/partner/schema.json @@ -0,0 +1,35 @@ +{ + "kind": "collectionType", + "collectionName": "partners", + "info": { + "singularName": "partner", + "pluralName": "partners", + "displayName": "Partner" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "partnerName": { + "type": "string", + "required": true + }, + "logoUrl": { + "type": "string" + }, + "logoImage": { + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ], + "type": "media", + "multiple": false + }, + "websiteUrl": { + "type": "string" + } + } +} diff --git a/backend/src/api/partner/controllers/partner.js b/backend/src/api/partner/controllers/partner.js new file mode 100644 index 0000000..35ed5fa --- /dev/null +++ b/backend/src/api/partner/controllers/partner.js @@ -0,0 +1,9 @@ +'use strict'; + +/** + * partner controller + */ + +const { createCoreController } = require('@strapi/strapi').factories; + +module.exports = createCoreController('api::partner.partner'); diff --git a/backend/src/api/partner/documentation/1.0.0/partner.json b/backend/src/api/partner/documentation/1.0.0/partner.json new file mode 100644 index 0000000..4eba049 --- /dev/null +++ b/backend/src/api/partner/documentation/1.0.0/partner.json @@ -0,0 +1,507 @@ +{ + "/partners": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerListResponse" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Partner" + ], + "parameters": [ + { + "name": "sort", + "in": "query", + "description": "Sort by attributes ascending (asc) or descending (desc)", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pagination[withCount]", + "in": "query", + "description": "Return page/pageSize (default: true)", + "deprecated": false, + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "pagination[page]", + "in": "query", + "description": "Page number (default: 0)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "pagination[pageSize]", + "in": "query", + "description": "Page size (default: 25)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "pagination[start]", + "in": "query", + "description": "Offset value (default: 0)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "pagination[limit]", + "in": "query", + "description": "Number of entities to return (default: 25)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "fields", + "in": "query", + "description": "Fields to return (ex: title,author)", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "populate", + "in": "query", + "description": "Relations to return", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "filters", + "in": "query", + "description": "Filters to apply", + "deprecated": false, + "required": false, + "schema": { + "type": "object" + }, + "style": "deepObject" + }, + { + "name": "locale", + "in": "query", + "description": "Locale to apply", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + } + ], + "operationId": "get/partners" + }, + "post": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerResponse" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Partner" + ], + "parameters": [], + "operationId": "post/partners", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerRequest" + } + } + } + } + } + }, + "/partners/{id}": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerResponse" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Partner" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "get/partners/{id}" + }, + "put": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerResponse" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Partner" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "put/partners/{id}", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PartnerRequest" + } + } + } + } + }, + "delete": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int64" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Partner" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "delete/partners/{id}" + } + } +} diff --git a/backend/src/api/partner/routes/partner.js b/backend/src/api/partner/routes/partner.js new file mode 100644 index 0000000..9d20743 --- /dev/null +++ b/backend/src/api/partner/routes/partner.js @@ -0,0 +1,9 @@ +'use strict'; + +/** + * partner router + */ + +const { createCoreRouter } = require('@strapi/strapi').factories; + +module.exports = createCoreRouter('api::partner.partner'); diff --git a/backend/src/api/partner/services/partner.js b/backend/src/api/partner/services/partner.js new file mode 100644 index 0000000..401ab9e --- /dev/null +++ b/backend/src/api/partner/services/partner.js @@ -0,0 +1,9 @@ +'use strict'; + +/** + * partner service + */ + +const { createCoreService } = require('@strapi/strapi').factories; + +module.exports = createCoreService('api::partner.partner'); diff --git a/backend/src/extensions/documentation/documentation/1.0.0/full_documentation.json b/backend/src/extensions/documentation/documentation/1.0.0/full_documentation.json index 25b47b7..c379f22 100644 --- a/backend/src/extensions/documentation/documentation/1.0.0/full_documentation.json +++ b/backend/src/extensions/documentation/documentation/1.0.0/full_documentation.json @@ -14,7 +14,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, - "x-generation-date": "2024-01-26T19:22:16.105Z" + "x-generation-date": "2024-01-27T19:38:43.233Z" }, "x-strapi-config": { "path": "/documentation", @@ -1876,215 +1876,1509 @@ } } }, + "PartnerRequest": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "required": [ + "partnerName" + ], + "type": "object", + "properties": { + "partnerName": { + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "logoImage": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "example": "string or id" + }, + "websiteUrl": { + "type": "string" + } + } + } + } + }, + "PartnerListResponseDataItem": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "$ref": "#/components/schemas/Partner" + } + } + }, + "PartnerListResponse": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PartnerListResponseDataItem" + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer", + "minimum": 25 + }, + "pageCount": { + "type": "integer", + "maximum": 1 + }, + "total": { + "type": "integer" + } + } + } + } + } + } + }, + "Partner": { + "type": "object", + "required": [ + "partnerName" + ], + "properties": { + "partnerName": { + "type": "string" + }, + "logoUrl": { + "type": "string" + }, + "logoImage": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "alternativeText": { + "type": "string" + }, + "caption": { + "type": "string" + }, + "width": { + "type": "integer" + }, + "height": { + "type": "integer" + }, + "formats": {}, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number", + "format": "float" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": {}, + "related": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "folder": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "pathId": { + "type": "integer" + }, + "parent": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "children": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "files": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "alternativeText": { + "type": "string" + }, + "caption": { + "type": "string" + }, + "width": { + "type": "integer" + }, + "height": { + "type": "integer" + }, + "formats": {}, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number", + "format": "float" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": {}, + "related": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "folder": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "folderPath": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "firstname": { + "type": "string" + }, + "lastname": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email" + }, + "resetPasswordToken": { + "type": "string" + }, + "registrationToken": { + "type": "string" + }, + "isActive": { + "type": "boolean" + }, + "roles": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "users": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + }, + "permissions": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "actionParameters": {}, + "subject": { + "type": "string" + }, + "properties": {}, + "conditions": {}, + "role": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + } + }, + "blocked": { + "type": "boolean" + }, + "preferedLanguage": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + } + }, + "path": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + }, + "folderPath": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + } + } + } + } + }, + "websiteUrl": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "publishedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + }, + "updatedBy": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "PartnerResponseDataObject": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "attributes": { + "$ref": "#/components/schemas/Partner" + } + } + }, + "PartnerResponse": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/PartnerResponseDataObject" + }, + "meta": { + "type": "object" + } + } + }, "UploadFile": { "properties": { - "id": { - "type": "number" + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "alternativeText": { + "type": "string" + }, + "caption": { + "type": "string" + }, + "width": { + "type": "number", + "format": "integer" + }, + "height": { + "type": "number", + "format": "integer" + }, + "formats": { + "type": "number" + }, + "hash": { + "type": "string" + }, + "ext": { + "type": "string" + }, + "mime": { + "type": "string" + }, + "size": { + "type": "number", + "format": "double" + }, + "url": { + "type": "string" + }, + "previewUrl": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "provider_metadata": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Users-Permissions-Role": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Users-Permissions-User": { + "type": "object", + "properties": { + "id": { + "type": "number", + "example": 1 + }, + "username": { + "type": "string", + "example": "foo.bar" + }, + "email": { + "type": "string", + "example": "foo.bar@strapi.io" + }, + "provider": { + "type": "string", + "example": "local" + }, + "confirmed": { + "type": "boolean", + "example": true + }, + "blocked": { + "type": "boolean", + "example": false + }, + "createdAt": { + "type": "string", + "format": "date-time", + "example": "2022-06-02T08:32:06.258Z" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "example": "2022-06-02T08:32:06.267Z" + } + } + }, + "Users-Permissions-UserRegistration": { + "type": "object", + "properties": { + "jwt": { + "type": "string", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" }, - "name": { - "type": "string" + "user": { + "$ref": "#/components/schemas/Users-Permissions-User" + } + } + }, + "Users-Permissions-PermissionsTree": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "every api", + "properties": { + "controllers": { + "description": "every controller of the api", + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "description": "every action of every controller", + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "policy": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "requestBodies": { + "Users-Permissions-RoleRequest": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "permissions": { + "$ref": "#/components/schemas/Users-Permissions-PermissionsTree" + } + } + }, + "example": { + "name": "foo", + "description": "role foo", + "permissions": { + "api::content-type.content-type": { + "controllers": { + "controllerA": { + "find": { + "enabled": true + } + } + } + } + } + } + } + } + } + } + }, + "paths": { + "/articles": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleListResponse" + } + } + } }, - "alternativeText": { - "type": "string" + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "caption": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "width": { - "type": "number", - "format": "integer" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "height": { - "type": "number", - "format": "integer" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "formats": { - "type": "number" + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Article" + ], + "parameters": [ + { + "name": "sort", + "in": "query", + "description": "Sort by attributes ascending (asc) or descending (desc)", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } }, - "hash": { - "type": "string" + { + "name": "pagination[withCount]", + "in": "query", + "description": "Return page/pageSize (default: true)", + "deprecated": false, + "required": false, + "schema": { + "type": "boolean" + } }, - "ext": { - "type": "string" + { + "name": "pagination[page]", + "in": "query", + "description": "Page number (default: 0)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } }, - "mime": { - "type": "string" + { + "name": "pagination[pageSize]", + "in": "query", + "description": "Page size (default: 25)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } }, - "size": { - "type": "number", - "format": "double" + { + "name": "pagination[start]", + "in": "query", + "description": "Offset value (default: 0)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "pagination[limit]", + "in": "query", + "description": "Number of entities to return (default: 25)", + "deprecated": false, + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "fields", + "in": "query", + "description": "Fields to return (ex: title,author)", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "populate", + "in": "query", + "description": "Relations to return", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "filters", + "in": "query", + "description": "Filters to apply", + "deprecated": false, + "required": false, + "schema": { + "type": "object" + }, + "style": "deepObject" }, - "url": { - "type": "string" + { + "name": "locale", + "in": "query", + "description": "Locale to apply", + "deprecated": false, + "required": false, + "schema": { + "type": "string" + } + } + ], + "operationId": "get/articles" + }, + "post": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleResponse" + } + } + } }, - "previewUrl": { - "type": "string" + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "provider": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "provider_metadata": { - "type": "object" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "createdAt": { - "type": "string", - "format": "date-time" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "updatedAt": { - "type": "string", - "format": "date-time" + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "Article" + ], + "parameters": [], + "operationId": "post/articles", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleRequest" + } + } } } - }, - "Users-Permissions-Role": { - "type": "object", - "properties": { - "id": { - "type": "number" + } + }, + "/articles/{id}": { + "get": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleResponse" + } + } + } }, - "name": { - "type": "string" + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "description": { - "type": "string" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "type": { - "type": "string" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "createdAt": { - "type": "string", - "format": "date-time" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "updatedAt": { - "type": "string", - "format": "date-time" + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } } - } + }, + "tags": [ + "Article" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "get/articles/{id}" }, - "Users-Permissions-User": { - "type": "object", - "properties": { - "id": { - "type": "number", - "example": 1 - }, - "username": { - "type": "string", - "example": "foo.bar" - }, - "email": { - "type": "string", - "example": "foo.bar@strapi.io" + "put": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleResponse" + } + } + } }, - "provider": { - "type": "string", - "example": "local" + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "confirmed": { - "type": "boolean", - "example": true + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "blocked": { - "type": "boolean", - "example": false + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "createdAt": { - "type": "string", - "format": "date-time", - "example": "2022-06-02T08:32:06.258Z" + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } }, - "updatedAt": { - "type": "string", - "format": "date-time", - "example": "2022-06-02T08:32:06.267Z" + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } } - } - }, - "Users-Permissions-UserRegistration": { - "type": "object", - "properties": { - "jwt": { - "type": "string", - "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - }, - "user": { - "$ref": "#/components/schemas/Users-Permissions-User" + }, + "tags": [ + "Article" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "put/articles/{id}", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArticleRequest" + } + } } } }, - "Users-Permissions-PermissionsTree": { - "type": "object", - "additionalProperties": { - "type": "object", - "description": "every api", - "properties": { - "controllers": { - "description": "every controller of the api", - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "description": "every action of every controller", - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "policy": { - "type": "string" - } - } + "delete": { + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int64" } } } - } - } - } - }, - "requestBodies": { - "Users-Permissions-RoleRequest": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - }, - "permissions": { - "$ref": "#/components/schemas/Users-Permissions-PermissionsTree" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" } } - }, - "example": { - "name": "foo", - "description": "role foo", - "permissions": { - "api::content-type.content-type": { - "controllers": { - "controllerA": { - "find": { - "enabled": true - } - } - } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" } } } } - } + }, + "tags": [ + "Article" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "deprecated": false, + "required": true, + "schema": { + "type": "number" + } + } + ], + "operationId": "delete/articles/{id}" } - } - }, - "paths": { - "/articles": { + }, + "/authors": { "get": { "responses": { "200": { @@ -2092,7 +3386,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleListResponse" + "$ref": "#/components/schemas/AuthorListResponse" } } } @@ -2149,7 +3443,7 @@ } }, "tags": [ - "Article" + "Author" ], "parameters": [ { @@ -2254,7 +3548,7 @@ } } ], - "operationId": "get/articles" + "operationId": "get/authors" }, "post": { "responses": { @@ -2263,7 +3557,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleResponse" + "$ref": "#/components/schemas/AuthorResponse" } } } @@ -2320,23 +3614,23 @@ } }, "tags": [ - "Article" + "Author" ], "parameters": [], - "operationId": "post/articles", + "operationId": "post/authors", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleRequest" + "$ref": "#/components/schemas/AuthorRequest" } } } } } }, - "/articles/{id}": { + "/authors/{id}": { "get": { "responses": { "200": { @@ -2344,7 +3638,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleResponse" + "$ref": "#/components/schemas/AuthorResponse" } } } @@ -2401,7 +3695,7 @@ } }, "tags": [ - "Article" + "Author" ], "parameters": [ { @@ -2415,7 +3709,7 @@ } } ], - "operationId": "get/articles/{id}" + "operationId": "get/authors/{id}" }, "put": { "responses": { @@ -2424,7 +3718,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleResponse" + "$ref": "#/components/schemas/AuthorResponse" } } } @@ -2481,7 +3775,7 @@ } }, "tags": [ - "Article" + "Author" ], "parameters": [ { @@ -2495,13 +3789,13 @@ } } ], - "operationId": "put/articles/{id}", + "operationId": "put/authors/{id}", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ArticleRequest" + "$ref": "#/components/schemas/AuthorRequest" } } } @@ -2572,7 +3866,7 @@ } }, "tags": [ - "Article" + "Author" ], "parameters": [ { @@ -2586,10 +3880,10 @@ } } ], - "operationId": "delete/articles/{id}" + "operationId": "delete/authors/{id}" } }, - "/authors": { + "/partners": { "get": { "responses": { "200": { @@ -2597,7 +3891,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorListResponse" + "$ref": "#/components/schemas/PartnerListResponse" } } } @@ -2654,7 +3948,7 @@ } }, "tags": [ - "Author" + "Partner" ], "parameters": [ { @@ -2759,7 +4053,7 @@ } } ], - "operationId": "get/authors" + "operationId": "get/partners" }, "post": { "responses": { @@ -2768,7 +4062,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorResponse" + "$ref": "#/components/schemas/PartnerResponse" } } } @@ -2825,23 +4119,23 @@ } }, "tags": [ - "Author" + "Partner" ], "parameters": [], - "operationId": "post/authors", + "operationId": "post/partners", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorRequest" + "$ref": "#/components/schemas/PartnerRequest" } } } } } }, - "/authors/{id}": { + "/partners/{id}": { "get": { "responses": { "200": { @@ -2849,7 +4143,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorResponse" + "$ref": "#/components/schemas/PartnerResponse" } } } @@ -2906,7 +4200,7 @@ } }, "tags": [ - "Author" + "Partner" ], "parameters": [ { @@ -2920,7 +4214,7 @@ } } ], - "operationId": "get/authors/{id}" + "operationId": "get/partners/{id}" }, "put": { "responses": { @@ -2929,7 +4223,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorResponse" + "$ref": "#/components/schemas/PartnerResponse" } } } @@ -2986,7 +4280,7 @@ } }, "tags": [ - "Author" + "Partner" ], "parameters": [ { @@ -3000,13 +4294,13 @@ } } ], - "operationId": "put/authors/{id}", + "operationId": "put/partners/{id}", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthorRequest" + "$ref": "#/components/schemas/PartnerRequest" } } } @@ -3077,7 +4371,7 @@ } }, "tags": [ - "Author" + "Partner" ], "parameters": [ { @@ -3091,7 +4385,7 @@ } } ], - "operationId": "delete/authors/{id}" + "operationId": "delete/partners/{id}" } }, "/upload": { diff --git a/backend/src/extensions/documentation/public/index.html b/backend/src/extensions/documentation/public/index.html index 95b3599..2bf8a28 100644 --- a/backend/src/extensions/documentation/public/index.html +++ b/backend/src/extensions/documentation/public/index.html @@ -46,7 +46,7 @@ window.onload = function() { const ui = SwaggerUIBundle({ url: "https://petstore.swagger.io/v2/swagger.json", - spec: {"openapi":"3.0.0","info":{"version":"1.0.0","title":"DOCUMENTATION","description":"","termsOfService":"YOUR_TERMS_OF_SERVICE_URL","contact":{"name":"TEAM","email":"contact-email@something.io","url":"mywebsite.io"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"},"x-generation-date":"2024-01-26T13:13:50.715Z"},"x-strapi-config":{"path":"/documentation","plugins":["upload","users-permissions"]},"servers":[{"url":"http://localhost:1337/api","description":"Development server"}],"externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/getting-started/introduction.html"},"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"data":{"nullable":true,"oneOf":[{"type":"object"},{"type":"array","items":{"type":"object"}}]},"error":{"type":"object","properties":{"status":{"type":"integer"},"name":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}}}}},"ArticleRequest":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"coverImage":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"},"datePublished":{"type":"string","format":"date"},"body":{},"author":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"},"slug":{"type":"string"}}}}},"ArticleListResponseDataItem":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Article"}}},"ArticleListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ArticleListResponseDataItem"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"integer"},"pageSize":{"type":"integer","minimum":25},"pageCount":{"type":"integer","maximum":1},"total":{"type":"integer"}}}}}}},"Article":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"coverImage":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"pathId":{"type":"integer"},"parent":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"children":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"files":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"resetPasswordToken":{"type":"string"},"registrationToken":{"type":"string"},"isActive":{"type":"boolean"},"roles":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"users":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"permissions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"action":{"type":"string"},"actionParameters":{},"subject":{"type":"string"},"properties":{},"conditions":{},"role":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"blocked":{"type":"boolean"},"preferedLanguage":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"path":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"datePublished":{"type":"string","format":"date"},"body":{},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}},"ArticleResponseDataObject":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Article"}}},"ArticleResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ArticleResponseDataObject"},"meta":{"type":"object"}}},"AuthorRequest":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"}}}}}},"AuthorListResponseDataItem":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Author"}}},"AuthorListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AuthorListResponseDataItem"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"integer"},"pageSize":{"type":"integer","minimum":25},"pageCount":{"type":"integer","maximum":1},"total":{"type":"integer"}}}}}}},"Author":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"pathId":{"type":"integer"},"parent":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"children":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"files":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"resetPasswordToken":{"type":"string"},"registrationToken":{"type":"string"},"isActive":{"type":"boolean"},"roles":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"users":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"permissions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"action":{"type":"string"},"actionParameters":{},"subject":{"type":"string"},"properties":{},"conditions":{},"role":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"blocked":{"type":"boolean"},"preferedLanguage":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"path":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}},"AuthorResponseDataObject":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Author"}}},"AuthorResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AuthorResponseDataObject"},"meta":{"type":"object"}}},"UploadFile":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"number","format":"integer"},"height":{"type":"number","format":"integer"},"formats":{"type":"number"},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"double"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{"type":"object"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Users-Permissions-Role":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Users-Permissions-User":{"type":"object","properties":{"id":{"type":"number","example":1},"username":{"type":"string","example":"foo.bar"},"email":{"type":"string","example":"foo.bar@strapi.io"},"provider":{"type":"string","example":"local"},"confirmed":{"type":"boolean","example":true},"blocked":{"type":"boolean","example":false},"createdAt":{"type":"string","format":"date-time","example":"2022-06-02T08:32:06.258Z"},"updatedAt":{"type":"string","format":"date-time","example":"2022-06-02T08:32:06.267Z"}}},"Users-Permissions-UserRegistration":{"type":"object","properties":{"jwt":{"type":"string","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"},"user":{"$ref":"#/components/schemas/Users-Permissions-User"}}},"Users-Permissions-PermissionsTree":{"type":"object","additionalProperties":{"type":"object","description":"every api","properties":{"controllers":{"description":"every controller of the api","type":"object","additionalProperties":{"type":"object","additionalProperties":{"description":"every action of every controller","type":"object","properties":{"enabled":{"type":"boolean"},"policy":{"type":"string"}}}}}}}}},"requestBodies":{"Users-Permissions-RoleRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"permissions":{"$ref":"#/components/schemas/Users-Permissions-PermissionsTree"}}},"example":{"name":"foo","description":"role foo","permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":true}}}}}}}}}}},"paths":{"/articles":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"sort","in":"query","description":"Sort by attributes ascending (asc) or descending (desc)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"pagination[withCount]","in":"query","description":"Return page/pageSize (default: true)","deprecated":false,"required":false,"schema":{"type":"boolean"}},{"name":"pagination[page]","in":"query","description":"Page number (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[pageSize]","in":"query","description":"Page size (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[start]","in":"query","description":"Offset value (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[limit]","in":"query","description":"Number of entities to return (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","description":"Fields to return (ex: title,author)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"populate","in":"query","description":"Relations to return","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"filters","in":"query","description":"Filters to apply","deprecated":false,"required":false,"schema":{"type":"object"},"style":"deepObject"},{"name":"locale","in":"query","description":"Locale to apply","deprecated":false,"required":false,"schema":{"type":"string"}}],"operationId":"get/articles"},"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[],"operationId":"post/articles","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleRequest"}}}}}},"/articles/{id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"get/articles/{id}"},"put":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"put/articles/{id}","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleRequest"}}}}},"delete":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"delete/articles/{id}"}},"/authors":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"sort","in":"query","description":"Sort by attributes ascending (asc) or descending (desc)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"pagination[withCount]","in":"query","description":"Return page/pageSize (default: true)","deprecated":false,"required":false,"schema":{"type":"boolean"}},{"name":"pagination[page]","in":"query","description":"Page number (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[pageSize]","in":"query","description":"Page size (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[start]","in":"query","description":"Offset value (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[limit]","in":"query","description":"Number of entities to return (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","description":"Fields to return (ex: title,author)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"populate","in":"query","description":"Relations to return","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"filters","in":"query","description":"Filters to apply","deprecated":false,"required":false,"schema":{"type":"object"},"style":"deepObject"},{"name":"locale","in":"query","description":"Locale to apply","deprecated":false,"required":false,"schema":{"type":"string"}}],"operationId":"get/authors"},"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[],"operationId":"post/authors","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRequest"}}}}}},"/authors/{id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"get/authors/{id}"},"put":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"put/authors/{id}","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRequest"}}}}},"delete":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"delete/authors/{id}"}},"/upload":{"post":{"description":"Upload files","responses":{"200":{"description":"response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}},"summary":"","tags":["Upload - File"],"requestBody":{"description":"Upload files","required":true,"content":{"multipart/form-data":{"schema":{"required":["files"],"type":"object","properties":{"path":{"type":"string","description":"The folder where the file(s) will be uploaded to (only supported on strapi-provider-upload-aws-s3)."},"refId":{"type":"string","description":"The ID of the entry which the file(s) will be linked to"},"ref":{"type":"string","description":"The unique ID (uid) of the model which the file(s) will be linked to (api::restaurant.restaurant)."},"field":{"type":"string","description":"The field of the entry which the file(s) will be precisely linked to."},"files":{"type":"array","items":{"type":"string","format":"binary"}}}}}}}}},"/upload?id={id}":{"post":{"parameters":[{"name":"id","in":"query","description":"File id","required":true,"schema":{"type":"string"}}],"description":"Upload file information","responses":{"200":{"description":"response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}},"summary":"","tags":["Upload - File"],"requestBody":{"description":"Upload files","required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"fileInfo":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"}}},"files":{"type":"string","format":"binary"}}}}}}}},"/upload/files":{"get":{"tags":["Upload - File"],"responses":{"200":{"description":"Get a list of files","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}}}},"/upload/files/{id}":{"get":{"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"string"}}],"tags":["Upload - File"],"responses":{"200":{"description":"Get a specific file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFile"}}}}}},"delete":{"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"string"}}],"tags":["Upload - File"],"responses":{"200":{"description":"Delete a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFile"}}}}}}},"/connect/{provider}":{"get":{"parameters":[{"name":"provider","in":"path","required":true,"description":"Provider name","schema":{"type":"string","pattern":".*"}}],"tags":["Users-Permissions - Auth"],"summary":"Login with a provider","description":"Redirects to provider login before being redirect to /auth/{provider}/callback","responses":{"301":{"description":"Redirect response"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/local":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Local login","description":"Returns a jwt token and user info","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string"},"password":{"type":"string"}}},"example":{"identifier":"foobar","password":"Test1234"}}},"required":true},"responses":{"200":{"description":"Connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/local/register":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Register a user","description":"Returns a jwt token and user info","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foobar","email":"foo.bar@strapi.io","password":"Test1234"}}},"required":true},"responses":{"200":{"description":"Successful registration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/{provider}/callback":{"get":{"tags":["Users-Permissions - Auth"],"summary":"Default Callback from provider auth","parameters":[{"name":"provider","in":"path","required":true,"description":"Provider name","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/forgot-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Send rest password email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}}},"example":{"email":"foo.bar@strapi.io"}}}},"responses":{"200":{"description":"Returns ok","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/reset-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Rest user password","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string"},"passwordConfirmation":{"type":"string"},"code":{"type":"string"}}},"example":{"password":"Test1234","passwordConfirmation":"Test1234","code":"zertyoaizndoianzodianzdonaizdoinaozdnia"}}}},"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/change-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Update user's own password","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["password","currentPassword","passwordConfirmation"],"properties":{"password":{"type":"string"},"currentPassword":{"type":"string"},"passwordConfirmation":{"type":"string"}}}}}},"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/email-confirmation":{"get":{"tags":["Users-Permissions - Auth"],"summary":"Confirm user email","parameters":[{"in":"query","name":"confirmation","schema":{"type":"string"},"description":"confirmation token received by email"}],"responses":{"301":{"description":"Redirects to the configure email confirmation redirect url"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/send-email-confirmation":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Send confirmation email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}}}}}},"responses":{"200":{"description":"Returns email and boolean to confirm email was sent","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"sent":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/permissions":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get default generated permissions","responses":{"200":{"description":"Returns the permissions tree","content":{"application/json":{"schema":{"type":"object","properties":{"permissions":{"$ref":"#/components/schemas/Users-Permissions-PermissionsTree"}}},"example":{"permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":false,"policy":""},"findOne":{"enabled":false,"policy":""},"create":{"enabled":false,"policy":""}},"controllerB":{"find":{"enabled":false,"policy":""},"findOne":{"enabled":false,"policy":""},"create":{"enabled":false,"policy":""}}}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"List roles","responses":{"200":{"description":"Returns list of roles","content":{"application/json":{"schema":{"type":"object","properties":{"roles":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-Role"},{"type":"object","properties":{"nb_users":{"type":"number"}}}]}}}},"example":{"roles":[{"id":1,"name":"Public","description":"Default role given to unauthenticated user.","type":"public","createdAt":"2022-05-19T17:35:35.097Z","updatedAt":"2022-05-31T16:05:36.603Z","nb_users":0}]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Users-Permissions - Users & Roles"],"summary":"Create a role","requestBody":{"$ref":"#/components/requestBodies/Users-Permissions-RoleRequest"},"responses":{"200":{"description":"Returns ok if the role was create","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles/{id}":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get a role","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"role Id"}],"responses":{"200":{"description":"Returns the role","content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}},"example":{"role":{"id":1,"name":"Public","description":"Default role given to unauthenticated user.","type":"public","createdAt":"2022-05-19T17:35:35.097Z","updatedAt":"2022-05-31T16:05:36.603Z","permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":true}}}}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles/{role}":{"put":{"tags":["Users-Permissions - Users & Roles"],"summary":"Update a role","parameters":[{"in":"path","name":"role","required":true,"schema":{"type":"string"},"description":"role Id"}],"requestBody":{"$ref":"#/components/requestBodies/Users-Permissions-RoleRequest"},"responses":{"200":{"description":"Returns ok if the role was udpated","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Users-Permissions - Users & Roles"],"summary":"Delete a role","parameters":[{"in":"path","name":"role","required":true,"schema":{"type":"string"},"description":"role Id"}],"responses":{"200":{"description":"Returns ok if the role was delete","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get list of users","responses":{"200":{"description":"Returns an array of users","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Users-Permissions-User"}},"example":[{"id":9,"username":"foao@strapi.io","email":"foao@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-06-01T18:32:35.211Z","updatedAt":"2022-06-01T18:32:35.217Z"}]}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Users-Permissions - Users & Roles"],"summary":"Create a user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","email","password"],"properties":{"email":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foo","email":"foo@strapi.io","password":"foo-password"}}}},"responses":{"201":{"description":"Returns created user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"},{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z","role":{"id":1,"name":"X","description":"Default role given to authenticated user.","type":"authenticated","createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-06-04T07:11:59.551Z"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{id}":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"responses":{"200":{"description":"Returns a user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-User"},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Users-Permissions - Users & Roles"],"summary":"Update a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","email","password"],"properties":{"email":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foo","email":"foo@strapi.io","password":"foo-password"}}}},"responses":{"200":{"description":"Returns updated user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"},{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z","role":{"id":1,"name":"X","description":"Default role given to authenticated user.","type":"authenticated","createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-06-04T07:11:59.551Z"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Users-Permissions - Users & Roles"],"summary":"Delete a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"responses":{"200":{"description":"Returns deleted user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/me":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get authenticated user info","responses":{"200":{"description":"Returns user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-User"},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/count":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get user count","responses":{"200":{"description":"Returns a number","content":{"application/json":{"schema":{"type":"number"},"example":1}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"tags":[{"name":"Users-Permissions - Auth","description":"Authentication endpoints","externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html"}},{"name":"Users-Permissions - Users & Roles","description":"Users, roles, and permissions endpoints","externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html"}}]}, + spec: {"openapi":"3.0.0","info":{"version":"1.0.0","title":"DOCUMENTATION","description":"","termsOfService":"YOUR_TERMS_OF_SERVICE_URL","contact":{"name":"TEAM","email":"contact-email@something.io","url":"mywebsite.io"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"},"x-generation-date":"2024-01-26T18:43:02.783Z"},"x-strapi-config":{"path":"/documentation","plugins":["upload","users-permissions"]},"servers":[{"url":"http://localhost:1337/api","description":"Development server"}],"externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/getting-started/introduction.html"},"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"data":{"nullable":true,"oneOf":[{"type":"object"},{"type":"array","items":{"type":"object"}}]},"error":{"type":"object","properties":{"status":{"type":"integer"},"name":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}}}}},"ArticleRequest":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"coverImage":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"},"datePublished":{"type":"string","format":"date"},"body":{},"author":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"},"slug":{"type":"string"}}}}},"ArticleListResponseDataItem":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Article"}}},"ArticleListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ArticleListResponseDataItem"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"integer"},"pageSize":{"type":"integer","minimum":25},"pageCount":{"type":"integer","maximum":1},"total":{"type":"integer"}}}}}}},"Article":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"coverImage":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"pathId":{"type":"integer"},"parent":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"children":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"files":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"resetPasswordToken":{"type":"string"},"registrationToken":{"type":"string"},"isActive":{"type":"boolean"},"roles":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"users":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"permissions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"action":{"type":"string"},"actionParameters":{},"subject":{"type":"string"},"properties":{},"conditions":{},"role":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"blocked":{"type":"boolean"},"preferedLanguage":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"path":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"datePublished":{"type":"string","format":"date"},"body":{},"author":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}},"ArticleResponseDataObject":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Article"}}},"ArticleResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ArticleResponseDataObject"},"meta":{"type":"object"}}},"AuthorRequest":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"array","items":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"}}}}}},"AuthorListResponseDataItem":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Author"}}},"AuthorListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AuthorListResponseDataItem"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"integer"},"pageSize":{"type":"integer","minimum":25},"pageCount":{"type":"integer","maximum":1},"total":{"type":"integer"}}}}}}},"Author":{"type":"object","properties":{"name":{"type":"string"},"avatar":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"pathId":{"type":"integer"},"parent":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"children":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"files":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"resetPasswordToken":{"type":"string"},"registrationToken":{"type":"string"},"isActive":{"type":"boolean"},"roles":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"users":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"permissions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"action":{"type":"string"},"actionParameters":{},"subject":{"type":"string"},"properties":{},"conditions":{},"role":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"blocked":{"type":"boolean"},"preferedLanguage":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"path":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}},"AuthorResponseDataObject":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Author"}}},"AuthorResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AuthorResponseDataObject"},"meta":{"type":"object"}}},"PartnerRequest":{"type":"object","required":["data"],"properties":{"data":{"required":["partnerName"],"type":"object","properties":{"partnerName":{"type":"string"},"logoUrl":{"type":"string"},"logoImage":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":"string or id"},"websiteUrl":{"type":"string"}}}}},"PartnerListResponseDataItem":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Partner"}}},"PartnerListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerListResponseDataItem"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"page":{"type":"integer"},"pageSize":{"type":"integer","minimum":25},"pageCount":{"type":"integer","maximum":1},"total":{"type":"integer"}}}}}}},"Partner":{"type":"object","required":["partnerName"],"properties":{"partnerName":{"type":"string"},"logoUrl":{"type":"string"},"logoImage":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"pathId":{"type":"integer"},"parent":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"children":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"files":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"formats":{},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"float"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{},"related":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"folder":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"firstname":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"resetPasswordToken":{"type":"string"},"registrationToken":{"type":"string"},"isActive":{"type":"boolean"},"roles":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"users":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}},"permissions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{"action":{"type":"string"},"actionParameters":{},"subject":{"type":"string"},"properties":{},"conditions":{},"role":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"blocked":{"type":"boolean"},"preferedLanguage":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}}},"path":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"folderPath":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}}}}}},"websiteUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"publishedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}},"updatedBy":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"type":"object","properties":{}}}}}}}},"PartnerResponseDataObject":{"type":"object","properties":{"id":{"type":"number"},"attributes":{"$ref":"#/components/schemas/Partner"}}},"PartnerResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerResponseDataObject"},"meta":{"type":"object"}}},"UploadFile":{"properties":{"id":{"type":"number"},"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"},"width":{"type":"number","format":"integer"},"height":{"type":"number","format":"integer"},"formats":{"type":"number"},"hash":{"type":"string"},"ext":{"type":"string"},"mime":{"type":"string"},"size":{"type":"number","format":"double"},"url":{"type":"string"},"previewUrl":{"type":"string"},"provider":{"type":"string"},"provider_metadata":{"type":"object"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Users-Permissions-Role":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Users-Permissions-User":{"type":"object","properties":{"id":{"type":"number","example":1},"username":{"type":"string","example":"foo.bar"},"email":{"type":"string","example":"foo.bar@strapi.io"},"provider":{"type":"string","example":"local"},"confirmed":{"type":"boolean","example":true},"blocked":{"type":"boolean","example":false},"createdAt":{"type":"string","format":"date-time","example":"2022-06-02T08:32:06.258Z"},"updatedAt":{"type":"string","format":"date-time","example":"2022-06-02T08:32:06.267Z"}}},"Users-Permissions-UserRegistration":{"type":"object","properties":{"jwt":{"type":"string","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"},"user":{"$ref":"#/components/schemas/Users-Permissions-User"}}},"Users-Permissions-PermissionsTree":{"type":"object","additionalProperties":{"type":"object","description":"every api","properties":{"controllers":{"description":"every controller of the api","type":"object","additionalProperties":{"type":"object","additionalProperties":{"description":"every action of every controller","type":"object","properties":{"enabled":{"type":"boolean"},"policy":{"type":"string"}}}}}}}}},"requestBodies":{"Users-Permissions-RoleRequest":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"permissions":{"$ref":"#/components/schemas/Users-Permissions-PermissionsTree"}}},"example":{"name":"foo","description":"role foo","permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":true}}}}}}}}}}},"paths":{"/articles":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"sort","in":"query","description":"Sort by attributes ascending (asc) or descending (desc)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"pagination[withCount]","in":"query","description":"Return page/pageSize (default: true)","deprecated":false,"required":false,"schema":{"type":"boolean"}},{"name":"pagination[page]","in":"query","description":"Page number (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[pageSize]","in":"query","description":"Page size (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[start]","in":"query","description":"Offset value (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[limit]","in":"query","description":"Number of entities to return (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","description":"Fields to return (ex: title,author)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"populate","in":"query","description":"Relations to return","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"filters","in":"query","description":"Filters to apply","deprecated":false,"required":false,"schema":{"type":"object"},"style":"deepObject"},{"name":"locale","in":"query","description":"Locale to apply","deprecated":false,"required":false,"schema":{"type":"string"}}],"operationId":"get/articles"},"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[],"operationId":"post/articles","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleRequest"}}}}}},"/articles/{id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"get/articles/{id}"},"put":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"put/articles/{id}","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArticleRequest"}}}}},"delete":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Article"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"delete/articles/{id}"}},"/authors":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"sort","in":"query","description":"Sort by attributes ascending (asc) or descending (desc)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"pagination[withCount]","in":"query","description":"Return page/pageSize (default: true)","deprecated":false,"required":false,"schema":{"type":"boolean"}},{"name":"pagination[page]","in":"query","description":"Page number (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[pageSize]","in":"query","description":"Page size (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[start]","in":"query","description":"Offset value (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[limit]","in":"query","description":"Number of entities to return (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","description":"Fields to return (ex: title,author)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"populate","in":"query","description":"Relations to return","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"filters","in":"query","description":"Filters to apply","deprecated":false,"required":false,"schema":{"type":"object"},"style":"deepObject"},{"name":"locale","in":"query","description":"Locale to apply","deprecated":false,"required":false,"schema":{"type":"string"}}],"operationId":"get/authors"},"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[],"operationId":"post/authors","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRequest"}}}}}},"/authors/{id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"get/authors/{id}"},"put":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"put/authors/{id}","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorRequest"}}}}},"delete":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Author"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"delete/authors/{id}"}},"/partners":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerListResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Partner"],"parameters":[{"name":"sort","in":"query","description":"Sort by attributes ascending (asc) or descending (desc)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"pagination[withCount]","in":"query","description":"Return page/pageSize (default: true)","deprecated":false,"required":false,"schema":{"type":"boolean"}},{"name":"pagination[page]","in":"query","description":"Page number (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[pageSize]","in":"query","description":"Page size (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[start]","in":"query","description":"Offset value (default: 0)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"pagination[limit]","in":"query","description":"Number of entities to return (default: 25)","deprecated":false,"required":false,"schema":{"type":"integer"}},{"name":"fields","in":"query","description":"Fields to return (ex: title,author)","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"populate","in":"query","description":"Relations to return","deprecated":false,"required":false,"schema":{"type":"string"}},{"name":"filters","in":"query","description":"Filters to apply","deprecated":false,"required":false,"schema":{"type":"object"},"style":"deepObject"},{"name":"locale","in":"query","description":"Locale to apply","deprecated":false,"required":false,"schema":{"type":"string"}}],"operationId":"get/partners"},"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Partner"],"parameters":[],"operationId":"post/partners","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerRequest"}}}}}},"/partners/{id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Partner"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"get/partners/{id}"},"put":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Partner"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"put/partners/{id}","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerRequest"}}}}},"delete":{"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"tags":["Partner"],"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"number"}}],"operationId":"delete/partners/{id}"}},"/upload":{"post":{"description":"Upload files","responses":{"200":{"description":"response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}},"summary":"","tags":["Upload - File"],"requestBody":{"description":"Upload files","required":true,"content":{"multipart/form-data":{"schema":{"required":["files"],"type":"object","properties":{"path":{"type":"string","description":"The folder where the file(s) will be uploaded to (only supported on strapi-provider-upload-aws-s3)."},"refId":{"type":"string","description":"The ID of the entry which the file(s) will be linked to"},"ref":{"type":"string","description":"The unique ID (uid) of the model which the file(s) will be linked to (api::restaurant.restaurant)."},"field":{"type":"string","description":"The field of the entry which the file(s) will be precisely linked to."},"files":{"type":"array","items":{"type":"string","format":"binary"}}}}}}}}},"/upload?id={id}":{"post":{"parameters":[{"name":"id","in":"query","description":"File id","required":true,"schema":{"type":"string"}}],"description":"Upload file information","responses":{"200":{"description":"response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}},"summary":"","tags":["Upload - File"],"requestBody":{"description":"Upload files","required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"fileInfo":{"type":"object","properties":{"name":{"type":"string"},"alternativeText":{"type":"string"},"caption":{"type":"string"}}},"files":{"type":"string","format":"binary"}}}}}}}},"/upload/files":{"get":{"tags":["Upload - File"],"responses":{"200":{"description":"Get a list of files","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UploadFile"}}}}}}}},"/upload/files/{id}":{"get":{"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"string"}}],"tags":["Upload - File"],"responses":{"200":{"description":"Get a specific file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFile"}}}}}},"delete":{"parameters":[{"name":"id","in":"path","description":"","deprecated":false,"required":true,"schema":{"type":"string"}}],"tags":["Upload - File"],"responses":{"200":{"description":"Delete a file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFile"}}}}}}},"/connect/{provider}":{"get":{"parameters":[{"name":"provider","in":"path","required":true,"description":"Provider name","schema":{"type":"string","pattern":".*"}}],"tags":["Users-Permissions - Auth"],"summary":"Login with a provider","description":"Redirects to provider login before being redirect to /auth/{provider}/callback","responses":{"301":{"description":"Redirect response"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/local":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Local login","description":"Returns a jwt token and user info","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string"},"password":{"type":"string"}}},"example":{"identifier":"foobar","password":"Test1234"}}},"required":true},"responses":{"200":{"description":"Connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/local/register":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Register a user","description":"Returns a jwt token and user info","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foobar","email":"foo.bar@strapi.io","password":"Test1234"}}},"required":true},"responses":{"200":{"description":"Successful registration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/{provider}/callback":{"get":{"tags":["Users-Permissions - Auth"],"summary":"Default Callback from provider auth","parameters":[{"name":"provider","in":"path","required":true,"description":"Provider name","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/forgot-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Send rest password email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}}},"example":{"email":"foo.bar@strapi.io"}}}},"responses":{"200":{"description":"Returns ok","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/reset-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Rest user password","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string"},"passwordConfirmation":{"type":"string"},"code":{"type":"string"}}},"example":{"password":"Test1234","passwordConfirmation":"Test1234","code":"zertyoaizndoianzodianzdonaizdoinaozdnia"}}}},"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/change-password":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Update user's own password","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["password","currentPassword","passwordConfirmation"],"properties":{"password":{"type":"string"},"currentPassword":{"type":"string"},"passwordConfirmation":{"type":"string"}}}}}},"responses":{"200":{"description":"Returns a jwt token and user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-UserRegistration"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/email-confirmation":{"get":{"tags":["Users-Permissions - Auth"],"summary":"Confirm user email","parameters":[{"in":"query","name":"confirmation","schema":{"type":"string"},"description":"confirmation token received by email"}],"responses":{"301":{"description":"Redirects to the configure email confirmation redirect url"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/send-email-confirmation":{"post":{"tags":["Users-Permissions - Auth"],"summary":"Send confirmation email","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}}}}}},"responses":{"200":{"description":"Returns email and boolean to confirm email was sent","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"sent":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/permissions":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get default generated permissions","responses":{"200":{"description":"Returns the permissions tree","content":{"application/json":{"schema":{"type":"object","properties":{"permissions":{"$ref":"#/components/schemas/Users-Permissions-PermissionsTree"}}},"example":{"permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":false,"policy":""},"findOne":{"enabled":false,"policy":""},"create":{"enabled":false,"policy":""}},"controllerB":{"find":{"enabled":false,"policy":""},"findOne":{"enabled":false,"policy":""},"create":{"enabled":false,"policy":""}}}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"List roles","responses":{"200":{"description":"Returns list of roles","content":{"application/json":{"schema":{"type":"object","properties":{"roles":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-Role"},{"type":"object","properties":{"nb_users":{"type":"number"}}}]}}}},"example":{"roles":[{"id":1,"name":"Public","description":"Default role given to unauthenticated user.","type":"public","createdAt":"2022-05-19T17:35:35.097Z","updatedAt":"2022-05-31T16:05:36.603Z","nb_users":0}]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Users-Permissions - Users & Roles"],"summary":"Create a role","requestBody":{"$ref":"#/components/requestBodies/Users-Permissions-RoleRequest"},"responses":{"200":{"description":"Returns ok if the role was create","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles/{id}":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get a role","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"role Id"}],"responses":{"200":{"description":"Returns the role","content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}},"example":{"role":{"id":1,"name":"Public","description":"Default role given to unauthenticated user.","type":"public","createdAt":"2022-05-19T17:35:35.097Z","updatedAt":"2022-05-31T16:05:36.603Z","permissions":{"api::content-type.content-type":{"controllers":{"controllerA":{"find":{"enabled":true}}}}}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users-permissions/roles/{role}":{"put":{"tags":["Users-Permissions - Users & Roles"],"summary":"Update a role","parameters":[{"in":"path","name":"role","required":true,"schema":{"type":"string"},"description":"role Id"}],"requestBody":{"$ref":"#/components/requestBodies/Users-Permissions-RoleRequest"},"responses":{"200":{"description":"Returns ok if the role was udpated","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Users-Permissions - Users & Roles"],"summary":"Delete a role","parameters":[{"in":"path","name":"role","required":true,"schema":{"type":"string"},"description":"role Id"}],"responses":{"200":{"description":"Returns ok if the role was delete","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"string","enum":[true]}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get list of users","responses":{"200":{"description":"Returns an array of users","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Users-Permissions-User"}},"example":[{"id":9,"username":"foao@strapi.io","email":"foao@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-06-01T18:32:35.211Z","updatedAt":"2022-06-01T18:32:35.217Z"}]}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Users-Permissions - Users & Roles"],"summary":"Create a user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","email","password"],"properties":{"email":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foo","email":"foo@strapi.io","password":"foo-password"}}}},"responses":{"201":{"description":"Returns created user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"},{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z","role":{"id":1,"name":"X","description":"Default role given to authenticated user.","type":"authenticated","createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-06-04T07:11:59.551Z"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{id}":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"responses":{"200":{"description":"Returns a user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-User"},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Users-Permissions - Users & Roles"],"summary":"Update a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","email","password"],"properties":{"email":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"example":{"username":"foo","email":"foo@strapi.io","password":"foo-password"}}}},"responses":{"200":{"description":"Returns updated user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"},{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Users-Permissions-Role"}}}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z","role":{"id":1,"name":"X","description":"Default role given to authenticated user.","type":"authenticated","createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-06-04T07:11:59.551Z"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Users-Permissions - Users & Roles"],"summary":"Delete a user","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"},"description":"user Id"}],"responses":{"200":{"description":"Returns deleted user info","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Users-Permissions-User"}]},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/me":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get authenticated user info","responses":{"200":{"description":"Returns user info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Users-Permissions-User"},"example":{"id":1,"username":"foo","email":"foo@strapi.io","provider":"local","confirmed":false,"blocked":false,"createdAt":"2022-05-19T17:35:35.096Z","updatedAt":"2022-05-19T17:35:35.096Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/count":{"get":{"tags":["Users-Permissions - Users & Roles"],"summary":"Get user count","responses":{"200":{"description":"Returns a number","content":{"application/json":{"schema":{"type":"number"},"example":1}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"tags":[{"name":"Users-Permissions - Auth","description":"Authentication endpoints","externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html"}},{"name":"Users-Permissions - Users & Roles","description":"Users, roles, and permissions endpoints","externalDocs":{"description":"Find out more","url":"https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html"}}]}, dom_id: '#swagger-ui', docExpansion: "none", deepLinking: true, diff --git a/backend/types/generated/contentTypes.d.ts b/backend/types/generated/contentTypes.d.ts index e87f78b..94c532b 100644 --- a/backend/types/generated/contentTypes.d.ts +++ b/backend/types/generated/contentTypes.d.ts @@ -435,6 +435,39 @@ export interface ApiAuthorAuthor extends Schema.CollectionType { }; } +export interface ApiPartnerPartner extends Schema.CollectionType { + collectionName: 'partners'; + info: { + singularName: 'partner'; + pluralName: 'partners'; + displayName: 'Partner'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + partnerName: Attribute.String & Attribute.Required; + logoUrl: Attribute.String; + logoImage: Attribute.Media; + websiteUrl: Attribute.String; + createdAt: Attribute.DateTime; + updatedAt: Attribute.DateTime; + publishedAt: Attribute.DateTime; + createdBy: Attribute.Relation< + 'api::partner.partner', + 'oneToOne', + 'admin::user' + > & + Attribute.Private; + updatedBy: Attribute.Relation< + 'api::partner.partner', + 'oneToOne', + 'admin::user' + > & + Attribute.Private; + }; +} + export interface PluginUploadFile extends Schema.CollectionType { collectionName: 'files'; info: { @@ -866,6 +899,7 @@ declare module '@strapi/types' { 'admin::transfer-token-permission': AdminTransferTokenPermission; 'api::article.article': ApiArticleArticle; 'api::author.author': ApiAuthorAuthor; + 'api::partner.partner': ApiPartnerPartner; 'plugin::upload.file': PluginUploadFile; 'plugin::upload.folder': PluginUploadFolder; 'plugin::content-releases.release': PluginContentReleasesRelease; diff --git a/frontend/next.config.mjs b/frontend/next.config.mjs index f419bb7..51f909c 100644 --- a/frontend/next.config.mjs +++ b/frontend/next.config.mjs @@ -1,7 +1,7 @@ /** @type {import('next').NextConfig} */ const nextConfig = { images: { - domains: ["www.ntnu.edu"], // Add your domain(s) here + domains: ["www.ntnu.edu", "localhost"], // Add your domain(s) here }, }; diff --git a/frontend/src/__generated__/gql.ts b/frontend/src/__generated__/gql.ts index df017c1..9c29717 100644 --- a/frontend/src/__generated__/gql.ts +++ b/frontend/src/__generated__/gql.ts @@ -13,6 +13,7 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/ * Therefore it is highly recommended to use the babel or swc plugin for production. */ const documents = { + "\nquery GET_PARTNERS {\n partners {\n data {\n attributes {\n partnerName\n logoUrl\n websiteUrl\n logoImage {\n data {\n attributes {\n url\n }\n }\n }\n }\n }\n }\n }\n": types.Get_PartnersDocument, "query ArticleWithSlug($articlesFilters: ArticleFiltersInput) {\n articles(filters: $articlesFilters) {\n data {\n attributes {\n author {\n data {\n attributes {\n name\n avatar {\n data {\n attributes {\n url\n }\n }\n }\n }\n }\n }\n body\n coverImage {\n data {\n attributes {\n url\n }\n }\n }\n datePublished\n subtitle\n title\n }\n }\n }\n }\n \n ": types.ArticleWithSlugDocument, "\nquery GET_ARTICLES {\n articles(sort: [\"datePublished:desc\"]) {\n data {\n id\n attributes {\n author {\n data {\n attributes {\n name\n avatar {\n data {\n attributes {\n url\n }\n }\n }\n }\n }\n }\n title\n datePublished\n body\n coverImage {\n data {\n attributes {\n url\n }\n }\n }\n createdAt\n publishedAt\n slug\n subtitle\n }\n }\n }\n}\n": types.Get_ArticlesDocument, }; @@ -31,6 +32,10 @@ const documents = { */ export function gql(source: string): unknown; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\nquery GET_PARTNERS {\n partners {\n data {\n attributes {\n partnerName\n logoUrl\n websiteUrl\n logoImage {\n data {\n attributes {\n url\n }\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\nquery GET_PARTNERS {\n partners {\n data {\n attributes {\n partnerName\n logoUrl\n websiteUrl\n logoImage {\n data {\n attributes {\n url\n }\n }\n }\n }\n }\n }\n }\n"]; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/frontend/src/__generated__/graphql.ts b/frontend/src/__generated__/graphql.ts index f3eeb42..b65cdb6 100644 --- a/frontend/src/__generated__/graphql.ts +++ b/frontend/src/__generated__/graphql.ts @@ -347,7 +347,7 @@ export type FloatFilterInput = { startsWith?: InputMaybe; }; -export type GenericMorph = Article | Author | ContentReleasesRelease | ContentReleasesReleaseAction | I18NLocale | UploadFile | UploadFolder | UsersPermissionsPermission | UsersPermissionsRole | UsersPermissionsUser; +export type GenericMorph = Article | Author | ContentReleasesRelease | ContentReleasesReleaseAction | I18NLocale | Partner | UploadFile | UploadFolder | UsersPermissionsPermission | UsersPermissionsRole | UsersPermissionsUser; export type I18NLocale = { __typename?: 'I18NLocale'; @@ -468,6 +468,7 @@ export type Mutation = { createAuthor?: Maybe; createContentReleasesRelease?: Maybe; createContentReleasesReleaseAction?: Maybe; + createPartner?: Maybe; createUploadFile?: Maybe; createUploadFolder?: Maybe; /** Create a new role */ @@ -478,6 +479,7 @@ export type Mutation = { deleteAuthor?: Maybe; deleteContentReleasesRelease?: Maybe; deleteContentReleasesReleaseAction?: Maybe; + deletePartner?: Maybe; deleteUploadFile?: Maybe; deleteUploadFolder?: Maybe; /** Delete an existing role */ @@ -500,6 +502,7 @@ export type Mutation = { updateContentReleasesRelease?: Maybe; updateContentReleasesReleaseAction?: Maybe; updateFileInfo: UploadFileEntityResponse; + updatePartner?: Maybe; updateUploadFile?: Maybe; updateUploadFolder?: Maybe; /** Update an existing role */ @@ -537,6 +540,11 @@ export type MutationCreateContentReleasesReleaseActionArgs = { }; +export type MutationCreatePartnerArgs = { + data: PartnerInput; +}; + + export type MutationCreateUploadFileArgs = { data: UploadFileInput; }; @@ -577,6 +585,11 @@ export type MutationDeleteContentReleasesReleaseActionArgs = { }; +export type MutationDeletePartnerArgs = { + id: Scalars['ID']['input']; +}; + + export type MutationDeleteUploadFileArgs = { id: Scalars['ID']['input']; }; @@ -667,6 +680,12 @@ export type MutationUpdateFileInfoArgs = { }; +export type MutationUpdatePartnerArgs = { + data: PartnerInput; + id: Scalars['ID']['input']; +}; + + export type MutationUpdateUploadFileArgs = { data: UploadFileInput; id: Scalars['ID']['input']; @@ -714,6 +733,55 @@ export type PaginationArg = { start?: InputMaybe; }; +export type Partner = { + __typename?: 'Partner'; + createdAt?: Maybe; + logoImage?: Maybe; + logoUrl?: Maybe; + partnerName: Scalars['String']['output']; + publishedAt?: Maybe; + updatedAt?: Maybe; + websiteUrl?: Maybe; +}; + +export type PartnerEntity = { + __typename?: 'PartnerEntity'; + attributes?: Maybe; + id?: Maybe; +}; + +export type PartnerEntityResponse = { + __typename?: 'PartnerEntityResponse'; + data?: Maybe; +}; + +export type PartnerEntityResponseCollection = { + __typename?: 'PartnerEntityResponseCollection'; + data: Array; + meta: ResponseCollectionMeta; +}; + +export type PartnerFiltersInput = { + and?: InputMaybe>>; + createdAt?: InputMaybe; + id?: InputMaybe; + logoUrl?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + partnerName?: InputMaybe; + publishedAt?: InputMaybe; + updatedAt?: InputMaybe; + websiteUrl?: InputMaybe; +}; + +export type PartnerInput = { + logoImage?: InputMaybe; + logoUrl?: InputMaybe; + partnerName?: InputMaybe; + publishedAt?: InputMaybe; + websiteUrl?: InputMaybe; +}; + export enum PublicationState { Live = 'LIVE', Preview = 'PREVIEW' @@ -732,6 +800,8 @@ export type Query = { i18NLocale?: Maybe; i18NLocales?: Maybe; me?: Maybe; + partner?: Maybe; + partners?: Maybe; uploadFile?: Maybe; uploadFiles?: Maybe; uploadFolder?: Maybe; @@ -805,6 +875,19 @@ export type QueryI18NLocalesArgs = { }; +export type QueryPartnerArgs = { + id?: InputMaybe; +}; + + +export type QueryPartnersArgs = { + filters?: InputMaybe; + pagination?: InputMaybe; + publicationState?: InputMaybe; + sort?: InputMaybe>>; +}; + + export type QueryUploadFileArgs = { id?: InputMaybe; }; @@ -1255,6 +1338,11 @@ export type UsersPermissionsUserRelationResponseCollection = { data: Array; }; +export type Get_PartnersQueryVariables = Exact<{ [key: string]: never; }>; + + +export type Get_PartnersQuery = { __typename?: 'Query', partners?: { __typename?: 'PartnerEntityResponseCollection', data: Array<{ __typename?: 'PartnerEntity', attributes?: { __typename?: 'Partner', partnerName: string, logoUrl?: string | null, websiteUrl?: string | null, logoImage?: { __typename?: 'UploadFileEntityResponse', data?: { __typename?: 'UploadFileEntity', attributes?: { __typename?: 'UploadFile', url: string } | null } | null } | null } | null }> } | null }; + export type ArticleWithSlugQueryVariables = Exact<{ articlesFilters?: InputMaybe; }>; @@ -1268,5 +1356,6 @@ export type Get_ArticlesQueryVariables = Exact<{ [key: string]: never; }>; export type Get_ArticlesQuery = { __typename?: 'Query', articles?: { __typename?: 'ArticleEntityResponseCollection', data: Array<{ __typename?: 'ArticleEntity', id?: string | null, attributes?: { __typename?: 'Article', title?: string | null, datePublished?: any | null, body?: any | null, createdAt?: any | null, publishedAt?: any | null, slug?: string | null, subtitle?: string | null, author?: { __typename?: 'AuthorEntityResponse', data?: { __typename?: 'AuthorEntity', attributes?: { __typename?: 'Author', name?: string | null, avatar?: { __typename?: 'UploadFileRelationResponseCollection', data: Array<{ __typename?: 'UploadFileEntity', attributes?: { __typename?: 'UploadFile', url: string } | null }> } | null } | null } | null } | null, coverImage?: { __typename?: 'UploadFileEntityResponse', data?: { __typename?: 'UploadFileEntity', attributes?: { __typename?: 'UploadFile', url: string } | null } | null } | null } | null }> } | null }; +export const Get_PartnersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GET_PARTNERS"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"partners"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"partnerName"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}},{"kind":"Field","name":{"kind":"Name","value":"websiteUrl"}},{"kind":"Field","name":{"kind":"Name","value":"logoImage"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const ArticleWithSlugDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ArticleWithSlug"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"articlesFilters"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ArticleFiltersInput"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"articles"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"filters"},"value":{"kind":"Variable","name":{"kind":"Name","value":"articlesFilters"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"author"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"avatar"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"body"}},{"kind":"Field","name":{"kind":"Name","value":"coverImage"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"datePublished"}},{"kind":"Field","name":{"kind":"Name","value":"subtitle"}},{"kind":"Field","name":{"kind":"Name","value":"title"}}]}}]}}]}}]}}]} as unknown as DocumentNode; export const Get_ArticlesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GET_ARTICLES"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"articles"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"sort"},"value":{"kind":"ListValue","values":[{"kind":"StringValue","value":"datePublished:desc","block":false}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"author"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"avatar"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"datePublished"}},{"kind":"Field","name":{"kind":"Name","value":"body"}},{"kind":"Field","name":{"kind":"Name","value":"coverImage"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"attributes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"url"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"publishedAt"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"subtitle"}}]}}]}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/frontend/src/app/(about)/partners/page.tsx b/frontend/src/app/(about)/partners/page.tsx index a37c7af..430d88e 100644 --- a/frontend/src/app/(about)/partners/page.tsx +++ b/frontend/src/app/(about)/partners/page.tsx @@ -1,65 +1,87 @@ +export const runtime = "edge"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import Image from "next/image"; import Link from "next/link"; +import { getClient } from "@/lib/ApolloClient"; +import { gql } from "@/__generated__/gql"; +const HOST_URL = process.env.HOST_URL as string; +const GET_PARTNERS = gql(` +query GET_PARTNERS { + partners { + data { + attributes { + partnerName + logoUrl + websiteUrl + logoImage { + data { + attributes { + url + } + } + } + } + } + } + } +`); -interface PartnerInfo { - id: number; - name: string; - src: string; - URL: string; -} +export default async function PartnersPage() { + const graphqlData = await getClient().query({ + query: GET_PARTNERS, + }); + + const partnersData = graphqlData?.data?.partners?.data || []; -export default function PartnersPage() { - const data: PartnerInfo[] = [ - { - id: 1, - name: "NTNU OCEANS", - src: "https://www.ntnu.edu/documents/919518/981063644/oceans_webbanner_TSO_1200x168.jpg/1b662672-7ddd-4a62-aec0-9d11aa30faa7?t=1432636474377", - URL: "https://www.ntnu.edu/oceans", - }, - { - id: 2, - name: "NTNU AMOS", - src: "https://www.ntnu.edu/documents/1277411470/0/amos_logo.png/5549873f-873d-4ea7-b772-47bd690f4db9?t=1514638950115", - URL: "https://www.ntnu.edu/amos", - }, - { - id: 3, - name: "The Research Council of Norway", - src: "https://www.forskningsradet.no/siteassets/logoer/forskningsradet-logo-en-svart.svg", - URL: "https://www.forskningsradet.no/en/", - }, - ]; + if (partnersData.length === 0) { + return
There are no partners to show.
; + } return (

Partners and Collaborators

- {data.map((partner) => ( - - - - -

{partner.name}

-
-
- - {partner.name} - -
- - ))} + {partnersData.map((partner) => { + let logoUrl = partner.attributes?.logoUrl || ""; + if (partner.attributes?.logoImage?.data?.attributes?.url) { + logoUrl = + HOST_URL + + partner.attributes.logoImage.data.attributes.url; + } + const websiteUrl = partner.attributes?.websiteUrl || ""; + const partnerName = partner.attributes?.partnerName || ""; + + return ( + + + + +

{partnerName}

+
+
+ + {logoUrl !== "" ? ( + {partnerName} + ) : ( +

No Logo

+ )} +
+
+ + ); + })}
); }