 decbca0c91
			
		
	
	
		decbca0c91
		
	
	
	
	
		
			
			Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk> Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/193
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| defmodule Pleroma.Web.ApiSpec.TranslationOperation do
 | |
|   alias OpenApiSpex.Operation
 | |
|   alias OpenApiSpex.Schema
 | |
| 
 | |
|   @spec open_api_operation(atom) :: Operation.t()
 | |
|   def open_api_operation(action) do
 | |
|     operation = String.to_existing_atom("#{action}_operation")
 | |
|     apply(__MODULE__, operation, [])
 | |
|   end
 | |
| 
 | |
|   @spec languages_operation() :: Operation.t()
 | |
|   def languages_operation() do
 | |
|     %Operation{
 | |
|       tags: ["Retrieve status translation"],
 | |
|       summary: "Translate status",
 | |
|       description: "View the translation of a given status",
 | |
|       operationId: "AkkomaAPI.TranslationController.languages",
 | |
|       security: [%{"oAuth" => ["read:statuses"]}],
 | |
|       responses: %{
 | |
|         200 =>
 | |
|           Operation.response("Translation", "application/json", source_dest_languages_schema())
 | |
|       }
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   defp source_dest_languages_schema do
 | |
|     %Schema{
 | |
|       type: :object,
 | |
|       required: [:source, :target],
 | |
|       properties: %{
 | |
|         source: languages_schema(),
 | |
|         target: languages_schema()
 | |
|       }
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   defp languages_schema do
 | |
|     %Schema{
 | |
|       type: :array,
 | |
|       items: %Schema{
 | |
|         type: :object,
 | |
|         properties: %{
 | |
|           code: %Schema{
 | |
|             type: :string
 | |
|           },
 | |
|           name: %Schema{
 | |
|             type: :string
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   end
 | |
| end
 |