Skip to main content

surrealdb_expr/expr/statements/define/
api.rs

1use surrealdb_types::{SqlFormat, ToSql};
2
3use super::DefineKind;
4use super::config::api::ApiConfig;
5use crate::expr::Expr;
6use crate::sql::ApiMethod;
7
8#[derive(Clone, Debug, Eq, PartialEq, Hash)]
9pub struct DefineApiStatement {
10	pub kind: DefineKind,
11	pub path: Expr,
12	pub actions: Vec<ApiAction>,
13	pub fallback: Option<Expr>,
14	pub config: ApiConfig,
15	pub comment: Expr,
16}
17#[derive(Clone, Debug, Eq, PartialEq, Hash)]
18pub struct ApiAction {
19	pub methods: Vec<ApiMethod>,
20	pub action: Expr,
21	pub config: ApiConfig,
22}
23
24impl ToSql for ApiAction {
25	fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
26		let stmt: crate::sql::statements::define::ApiAction = self.clone().into();
27		stmt.fmt_sql(f, sql_fmt);
28	}
29}