defmodule ProviderServiceWeb.Router do use Phoenix.Router pipeline :api do plug(:accepts, ["json"]) plug(OpenApiSpex.Plug.PutApiSpec, module: ProviderServiceWeb.ApiSpec) end get("/health", ProviderServiceWeb.HealthController, :health) get("/health/ready", ProviderServiceWeb.HealthController, :ready) scope "/api" do pipe_through(:api) get("/openapi", OpenApiSpex.Plug.RenderSpec, []) scope "/v1" do # Providers get("/providers", ProviderServiceWeb.ProviderController, :index) post("/providers", ProviderServiceWeb.ProviderController, :create) get("/providers/:provider_id", ProviderServiceWeb.ProviderController, :show) put("/providers/:provider_id", ProviderServiceWeb.ProviderController, :update) post( "/providers/:provider_id/deactivate", ProviderServiceWeb.ProviderController, :deactivate ) post( "/providers/:provider_id/reactivate", ProviderServiceWeb.ProviderController, :reactivate ) # Templates get("/providers/:provider_id/templates", ProviderServiceWeb.TemplateController, :index) post( "/providers/:provider_id/templates", ProviderServiceWeb.TemplateController, :upload_template ) post( "/providers/:provider_id/templates/:template_id/activate", ProviderServiceWeb.TemplateController, :activate ) post( "/providers/:provider_id/templates/:template_id/deactivate", ProviderServiceWeb.TemplateController, :deactivate ) post( "/providers/:provider_id/templates/:template_id/set-default", ProviderServiceWeb.TemplateController, :set_default ) delete( "/providers/:provider_id/templates/:template_id", ProviderServiceWeb.TemplateController, :remove ) end end if Mix.env() == :dev do scope "/swaggerui" do get("/", OpenApiSpex.Plug.SwaggerUI, path: "/api/openapi") end end end