# Copyright (C) 2024 Manuel Bustillo module SwaggerResponseHelper TIMESTAMP_FORMAT = '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z' TIMESTAMP_EXAMPLE = Time.zone.now.iso8601(3) TIMESTAMP = {type: :string,pattern: TIMESTAMP_FORMAT,example: TIMESTAMP_EXAMPLE}.freeze PASSWORD = { type: :string, minLength: User.password_length.begin, maxLength: User.password_length.end } def regular_api_responses response_401 end def response_422 response(422, 'Validation errors in input parameters') do produces 'application/json' error_schema xit end end def response_empty_200 response(200, 'Success') do produces 'application/json' schema type: :object xit end end def response_empty_201 response(201, 'Created') do produces 'application/json' schema type: :object xit end end def response_404 response(404, 'Record not found') do produces 'application/json' error_schema xit end end def response_401(message: nil) response(401, 'Unauthorized') do produces 'application/json' schema type: :object, required: %i[error], properties: { error: { type: :string, example: message || 'You need to sign in or sign up before continuing.' } } xit end end private def error_schema schema type: :object, required: %i[message errors], properties: { message: { type: :string }, errors: { type: :array, items: { type: :string } } } end end