UNPKG

@teikei/schemas

Version:

Teikei validation schemas. Teikei is the software that powers ernte-teilen.org, a website that maps out Community-supported Agriculture in Germany.

379 lines (378 loc) 8.54 kB
{ "openapi": "3.0.0", "info": { "title": "Teikei", "description": "Teikei API", "version": "1.0.0" }, "servers": [ { "url": "http://localhost:3030", "description": "Development" } ], "paths": { "/entries": { "get": { "summary": "Get places", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Entry" } } } } } } } }, "/farms": { "get": { "summary": "Get farms", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Farm" } } } } } } }, "post": { "summary": "Add a new farm", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Farm" } } }, "responses": { "201": { "description": "CREATED", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Farm" } } } } } } }, "/farms/{id}": { "get": { "summary": "Get farm details", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Farm" } } } }, "404": { "description": "NOT_FOUND", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } }, "put": { "summary": "Replace a farm", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Farm" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "patch": { "summary": "Edit a farm", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Farm" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "delete": { "summary": "Delete a farm", "responses": { "204": { "description": "NO_CONTENT" } } } }, "/depots": { "get": { "summary": "Get depots", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Depot" } } } } } } }, "post": { "summary": "Add a new depot", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Depot" } } }, "responses": { "201": { "description": "CREATED", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Depot" } } } } } } }, "/depots/{id}": { "get": { "summary": "Get depot details", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Depot" } } } }, "404": { "description": "NOT_FOUND", "content": { "application/json": { "schema": { "type": "object", "$ref": "#/components/schemas/Error" } } } } } }, "put": { "summary": "Replace a depot", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Depot" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "patch": { "summary": "Edit a depo", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Depot" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "delete": { "summary": "Delete a depot", "responses": { "204": { "description": "NO_CONTENT" } } } }, "/initiatives": { "get": { "summary": "Get initiatives", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Initiative" } } } } } } } }, "/initiatives/{id}": { "get": { "summary": "Get initiative details", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Initiative" } } } }, "404": { "description": "NOT_FOUND", "content": { "application/json": { "schema": { "type": "object", "$ref": "#/components/schemas/Error" } } } } } }, "put": { "summary": "Replace an initiative", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Initiative" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "patch": { "summary": "Edit an initiative", "requestBody": { "content": { "application/json": { "$ref": "#/components/schemas/Initiative" } } }, "responses": { "204": { "description": "NO_CONTENT" } } }, "delete": { "summary": "Delete an initiative", "responses": { "204": { "description": "NO_CONTENT" } } } } }, "components": { "schemas": { "Error": { "type": "object", "properties": { "error": { "type": "string" } } }, "Owner": { "type": "object", "properties": { "user_id": { "type": "integer" }, "name": { "type": "string" }, "contact_by_phone": { "type": "boolean" }, "contact_by_email": { "type": "boolean" } } }, "Entry": { "$ref": "/schemas/entities/entry.json" }, "Depot": { "$ref": "/schemas/entities/depot.json" }, "Farm": { "$ref": "/schemas/entities/farm.json" }, "Initiative": { "$ref": "/schemas/entities/initiative.json" } } } }