{ "swagger": "2.0", "info": { "description": "This is the API documentation for the LfK Document Server - a tool for pdf generation.", "title": "LfK Document Server API", "contact": {} }, "paths": { "/cards": { "post": { "description": "Generate cards based on the provided data", "consumes": [ "application/json" ], "produces": [ "application/pdf" ], "tags": [ "cards" ], "summary": "Generate runner cards", "parameters": [ { "description": "Card data", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CardRequest" } } ], "responses": {} } }, "/certificates": { "post": { "description": "Generate certificates based on the provided data", "consumes": [ "application/json" ], "produces": [ "application/pdf" ], "tags": [ "certificates" ], "summary": "Generate runner certificates", "parameters": [ { "description": "Certificate data", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CertificateRequest" } } ], "responses": {} } }, "/contracts": { "post": { "description": "Generate a contract based on the provided data", "consumes": [ "application/json" ], "produces": [ "application/pdf" ], "tags": [ "contracts" ], "summary": "Generate a contract", "parameters": [ { "description": "Contract data", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ContractRequest" } } ], "responses": {} } } }, "definitions": { "models.Card": { "type": "object", "required": [ "code", "id", "runner" ], "properties": { "code": { "type": "string" }, "enabled": { "type": "boolean", "default": true }, "id": { "type": "integer" }, "runner": { "$ref": "#/definitions/models.Runner" } } }, "models.CardRequest": { "type": "object", "required": [ "cards", "locale" ], "properties": { "cards": { "type": "array", "items": { "$ref": "#/definitions/models.Card" } }, "locale": { "type": "string", "enum": [ "en", "de" ] } } }, "models.CertificateRequest": { "type": "object", "required": [ "locale", "runners" ], "properties": { "locale": { "type": "string", "enum": [ "en", "de" ] }, "runners": { "type": "array", "items": { "$ref": "#/definitions/models.RunnerWithDonations" } } } }, "models.ContractRequest": { "type": "object", "required": [ "locale", "runners" ], "properties": { "locale": { "type": "string", "enum": [ "en", "de" ] }, "runners": { "type": "array", "items": { "$ref": "#/definitions/models.Runner" } } } }, "models.DistanceDonation": { "type": "object", "required": [ "amount_per_distance", "donor", "id" ], "properties": { "amount": { "type": "integer" }, "amount_per_distance": { "type": "integer" }, "donor": { "$ref": "#/definitions/models.Donor" }, "id": { "type": "integer" }, "paid_amount": { "type": "integer" } } }, "models.Donor": { "type": "object", "required": [ "first_name", "id", "last_name" ], "properties": { "first_name": { "type": "string" }, "id": { "type": "integer" }, "last_name": { "type": "string" }, "middle_name": { "type": "string" } } }, "models.Group": { "type": "object", "required": [ "id", "name" ], "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "parent_group": { "$ref": "#/definitions/models.Group" } } }, "models.Runner": { "type": "object", "required": [ "first_name", "group", "id", "last_name" ], "properties": { "first_name": { "type": "string" }, "group": { "$ref": "#/definitions/models.Group" }, "id": { "type": "integer" }, "last_name": { "type": "string" }, "middle_name": { "type": "string" } } }, "models.RunnerWithDonations": { "type": "object", "required": [ "distance", "first_name", "group", "id", "last_name" ], "properties": { "distance": { "type": "integer" }, "distance_donations": { "type": "array", "items": { "$ref": "#/definitions/models.DistanceDonation" } }, "first_name": { "type": "string" }, "group": { "$ref": "#/definitions/models.Group" }, "id": { "type": "integer" }, "last_name": { "type": "string" }, "middle_name": { "type": "string" }, "total_donations": { "type": "integer" }, "total_per_distance": { "type": "integer" } } } } }