// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" const docTemplate = `{ "schemes": {{ marshal .Schemes }}, "swagger": "2.0", "info": { "description": "{{escape .Description}}", "title": "{{.Title}}", "contact": {}, "version": "{{.Version}}" }, "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { "/admin/images": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns a paginated list of all images across all users.", "produces": [ "application/json" ], "tags": [ "Admin" ], "summary": "List all images (admin)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Items per page (default 20, max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Filter by user ID", "name": "user_id", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } }, "403": { "description": "Forbidden", "schema": { "type": "object", "additionalProperties": true } } } } }, "/admin/users/{id}/api-token": { "post": { "security": [ { "BearerAuth": [] } ], "description": "Creates an API Token for a user (Admin ONLY).", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Admin" ], "summary": "Create API Token", "parameters": [ { "type": "integer", "description": "User ID", "name": "id", "in": "path", "required": true }, { "type": "integer", "description": "Expiration in days (0 or omit for never)", "name": "expires_in_days", "in": "formData" } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } }, "403": { "description": "Forbidden", "schema": { "type": "object", "additionalProperties": true } }, "404": { "description": "Not Found", "schema": { "type": "object", "additionalProperties": true } } } } }, "/auth/login": { "post": { "description": "Authenticate user and get JWT", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Login", "parameters": [ { "type": "string", "description": "Email address", "name": "email", "in": "formData", "required": true }, { "type": "string", "description": "Password", "name": "password", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": true } } } } }, "/auth/refresh": { "post": { "description": "Get a new access token using a valid refresh token", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Refresh JWT", "parameters": [ { "type": "string", "description": "Refresh token", "name": "refresh_token", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": true } } } } }, "/auth/register": { "post": { "description": "Register a new user with email and password", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Register a new user", "parameters": [ { "type": "string", "description": "Email address", "name": "email", "in": "formData", "required": true }, { "type": "string", "description": "Password (min 6 chars)", "name": "password", "in": "formData", "required": true } ], "responses": { "201": { "description": "Created", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": true } } } } }, "/images": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns a paginated list of images belonging to the authenticated user.", "produces": [ "application/json" ], "tags": [ "Images" ], "summary": "List images", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Items per page (default 20, max 100)", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } } } }, "post": { "security": [ { "BearerAuth": [] } ], "description": "Uploads an image and registers it to the user.", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Images" ], "summary": "Upload an image", "parameters": [ { "type": "file", "description": "Image file", "name": "image", "in": "formData", "required": true }, { "type": "integer", "description": "Width", "name": "w", "in": "formData" }, { "type": "integer", "description": "Height", "name": "h", "in": "formData" }, { "type": "integer", "description": "Quality (1-100)", "name": "q", "in": "formData" }, { "type": "string", "description": "Format (webp, avif, png, jpg)", "name": "f", "in": "formData" }, { "type": "string", "description": "Mode (e.g. cover)", "name": "mode", "in": "formData" } ], "responses": { "201": { "description": "Created", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } } } } }, "/images/{id}": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns a single image record owned by the authenticated user.", "produces": [ "application/json" ], "tags": [ "Images" ], "summary": "Get image by ID", "parameters": [ { "type": "integer", "description": "Image ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } }, "404": { "description": "Not Found", "schema": { "type": "object", "additionalProperties": true } } } } }, "/images/{id}/process": { "get": { "description": "Processes an image (resize, crop, cover, format) using the generated token.", "produces": [ "image/jpeg", "image/png", "image/webp", "image/avif" ], "tags": [ "Images" ], "summary": "Process Image", "parameters": [ { "type": "integer", "description": "Image ID", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Global API Token", "name": "token", "in": "query", "required": true }, { "type": "integer", "description": "Width", "name": "w", "in": "query" }, { "type": "integer", "description": "Height", "name": "h", "in": "query" }, { "type": "integer", "description": "Quality (1-100)", "name": "q", "in": "query" }, { "type": "string", "description": "Format (webp, avif, png, jpg)", "name": "f", "in": "query" }, { "type": "string", "description": "Mode (e.g. cover)", "name": "mode", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "file" } }, "401": { "description": "Unauthorized", "schema": { "type": "object", "additionalProperties": true } }, "404": { "description": "Not Found", "schema": { "type": "object", "additionalProperties": true } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": true } } } } } }, "securityDefinitions": { "BearerAuth": { "description": "Type \"Bearer \u003ctoken\u003e\"", "type": "apiKey", "name": "Authorization", "in": "header" } } }` // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", Host: "localhost:8080", BasePath: "/", Schemes: []string{}, Title: "Go Image Manipulation API", Description: "This is a sample image manipulation API using Fiber v3 and bimg.", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", } func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) }