Skip to main content

app_facade_api/
plugin.rs

1use serde::{Deserialize, Serialize};
2
3pub const TARGET_PREFIX: &str = "/app/plugin";
4pub const CATALOG_LIST_TARGET: &str = "/app/plugin/catalog/list";
5pub const SYSTEM_CATALOG_JSON: &str = include_str!("../manifest/plugin-catalog.v1.json");
6pub const EXTENSION_VERSION: &str = "v1";
7pub const INSTALLED_LIST_TARGET: &str = "/app/plugin/installed/list";
8pub const DETAIL_GET_TARGET: &str = "/app/plugin/detail/get";
9pub const CANDIDATE_LIST_TARGET: &str = "/app/plugin/candidate/list";
10pub const ADD_START_TARGET: &str = "/app/plugin/add/start";
11pub const ADD_STATUS_TARGET: &str = "/app/plugin/add/status";
12pub const ADD_CANCEL_TARGET: &str = "/app/plugin/add/cancel";
13pub const REMOVE_TARGET: &str = "/app/plugin/remove";
14pub const PROFILE_UPDATE_TARGET: &str = "/app/plugin/profile/update";
15pub const SETTINGS_CHANGED_TARGET: &str = "/app/plugin/settings/changed";
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(rename_all = "camelCase", deny_unknown_fields)]
19pub struct PluginNodeRequest<T> {
20    pub node_id: String,
21    pub version: String,
22    pub payload: T,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct PluginNodeResponse<T> {
28    pub node_id: String,
29    pub node_type: String,
30    pub version: String,
31    pub data: T,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct SettingsChangedEvent {
37    pub version: String,
38    pub node_id: String,
39    pub node_type: String,
40    pub event_seq: u64,
41    pub section: String,
42    pub revision: u64,
43}