systemprompt_api/routes/oauth/endpoints/authorize/
mod.rs1mod handler;
2pub mod response_builder;
3pub mod validation;
4
5pub use handler::{handle_authorize_get, handle_authorize_post};
6
7use serde::{Deserialize, Serialize};
8use systemprompt_identifiers::ClientId;
9
10#[derive(Debug, Deserialize)]
11pub struct AuthorizeQuery {
12 pub response_type: String,
13 pub client_id: ClientId,
14 pub redirect_uri: Option<String>,
15 pub scope: Option<String>,
16 pub state: Option<String>,
17 pub code_challenge: Option<String>,
18 pub code_challenge_method: Option<String>,
19 pub response_mode: Option<String>,
20 pub display: Option<String>,
21 pub prompt: Option<String>,
22 pub max_age: Option<i64>,
23 pub ui_locales: Option<String>,
24 pub resource: Option<String>,
25}
26
27#[derive(Debug, Serialize)]
28pub struct AuthorizeResponse {
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub code: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub state: Option<String>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub error: Option<String>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub error_description: Option<String>,
37}
38
39#[derive(Debug, Deserialize)]
40pub struct AuthorizeRequest {
41 pub response_type: String,
42 pub client_id: ClientId,
43 pub redirect_uri: Option<String>,
44 pub scope: Option<String>,
45 pub state: Option<String>,
46 pub code_challenge: Option<String>,
47 pub code_challenge_method: Option<String>,
48 pub user_consent: Option<String>,
49 pub username: Option<String>,
50 pub password: Option<String>,
51 pub resource: Option<String>,
52}