openapi: 3.0.3 info: version: "2.0" title: CF 2022 description: CF 2022 license: name: Artistic License 2.0 url: https://www.perlfoundation.org/artistic-license-20.html contact: name: Andrej Ramašeuski email: andrej.ramaseuski@pirati.cz url: https://pardubicky.pirati.cz/lide/andrej-ramaseuski/ servers: - url: https://cf2022.pirati.cz/api description: Production server - url: https://cf2022.pir-test.eu/api description: Developement server - url: http://127.0.0.1:3000/api description: Local server components: schemas: Question: type: object properties: id: type: integer question: type: string help: type: string Response: type: object properties: question_id: type: integer response: type: string Variation: type: object properties: id: type: integer value: type: string price: type: integer Product: type: object properties: id: type: integer category_id: type: integer name: type: string description: type: string variations: type: array items: $ref: '#/components/schemas/Variation' price: type: integer free_price: type: boolean ProductOrder: type: object properties: id: type: integer variation: type: integer price: type: integer paths: /questions: get: x-mojo-to: questions#list tags: - options summary: "Questions" operationId: getQuestions responses: 200: description: Questions list content: application/json: schema: type: array items: $ref: '#/components/schemas/Question' /products: get: x-mojo-to: products#list tags: - options summary: "Products" operationId: getProducts responses: 200: description: Products list content: application/json: schema: type: array items: $ref: '#/components/schemas/Product' /orders: post: x-mojo-to: orders#create tags: - orders summary: "Vytvorit registraci" operationId: createOrder requestBody: required: true content: application/json: schema: type: object properties: token: type: string name: type: string maxLength: 128 example: 'Ivan Bartoš' email: type: string maxLength: 128 example: 'ivan.bartos@pirati.cz' organization: type: string example: 'ČTK' products: type: array items: $ref: '#/components/schemas/ProductOrder' responses: type: array items: $ref: '#/components/schemas/Response' example: - question_id: 1 response: XXXXX - question_id: 2 response: ZZZZZ responses: 201: description: Order created content: application/json: schema: type: object properties: url: type: string description: Tickets url /orders/exists: get: x-mojo-to: orders#exists tags: - order summary: "Existence objednavky" operationId: checkOrder parameters: - name: key in: query required: true example: andrej.ramaseuski@pirati.cz description: "Email nebo SSO UUID" schema: type: string responses: 200: description: Stav content: application/json: schema: type: object properties: exists: type: boolean /orders/detail: get: x-mojo-to: orders#get tags: - order summary: "Objednavka" operationId: getOrder parameters: - name: "X-Token" in: header required: true description: "SSO Token" schema: type: string responses: 200: description: Objednavka content: application/json: schema: type: object /orders/{id}/payment/: get: x-mojo-to: orders#payment tags: - order summary: "Info o platbe" operationId: getOrderPayment parameters: - name: "id" in: path required: true description: "ID nebo Pretix ID" schema: type: string responses: 200: description: Informace o platbe content: application/json: schema: type: object