| defmodule PlausibleWeb.Plugins.API.Schemas.Goal do | |
| @moduledoc """ | |
| OpenAPI schema for Goal | |
| """ | |
| use PlausibleWeb, :open_api_schema | |
| OpenApiSpex.schema(%{ | |
| title: "Goal", | |
| description: "Goal object", | |
| type: :object, | |
| discriminator: %OpenApiSpex.Discriminator{ | |
| propertyName: "goal_type", | |
| mapping: %{ | |
| "Goal.CustomEvent" => Schemas.Goal.CustomEvent, | |
| "Goal.Pageview" => Schemas.Goal.Pageview, | |
| "Goal.Revenue" => Schemas.Goal.Revenue | |
| } | |
| }, | |
| oneOf: [ | |
| Schemas.Goal.CustomEvent, | |
| Schemas.Goal.Revenue, | |
| Schemas.Goal.Pageview | |
| ], | |
| example: %{ | |
| goal_type: "Goal.Revenue", | |
| goal: %{ | |
| currency: "EUR", | |
| event_name: "Purchase" | |
| } | |
| } | |
| }) | |
| end | |