mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 04:04:55 +08:00
feat(global-search): dashboard globalsearch apis (#3831)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -19,6 +19,7 @@ pub mod outgoing_webhook_event;
|
||||
pub mod payments;
|
||||
pub mod refunds;
|
||||
pub mod sdk_events;
|
||||
pub mod search;
|
||||
|
||||
#[derive(Debug, serde::Serialize)]
|
||||
pub struct NameDescription {
|
||||
@ -251,7 +252,6 @@ pub struct GetApiEventMetricRequest {
|
||||
|
||||
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
|
||||
pub struct GetDisputeFilterRequest {
|
||||
pub time_range: TimeRange,
|
||||
#[serde(default)]
|
||||
|
||||
73
crates/api_models/src/analytics/search.rs
Normal file
73
crates/api_models/src/analytics/search.rs
Normal file
@ -0,0 +1,73 @@
|
||||
use serde_json::Value;
|
||||
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
pub struct SearchFilters {
|
||||
pub payment_method: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GetGlobalSearchRequest {
|
||||
pub query: String,
|
||||
#[serde(default)]
|
||||
pub filters: Option<SearchFilters>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GetSearchRequest {
|
||||
pub offset: i64,
|
||||
pub count: i64,
|
||||
pub query: String,
|
||||
#[serde(default)]
|
||||
pub filters: Option<SearchFilters>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GetSearchRequestWithIndex {
|
||||
pub index: SearchIndex,
|
||||
pub search_req: GetSearchRequest,
|
||||
}
|
||||
|
||||
#[derive(Debug, strum::EnumIter, Clone, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum SearchIndex {
|
||||
PaymentAttempts,
|
||||
PaymentIntents,
|
||||
Refunds,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GetSearchResponse {
|
||||
pub count: u64,
|
||||
pub index: SearchIndex,
|
||||
pub hits: Vec<Value>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize)]
|
||||
pub struct OpenMsearchOutput<T> {
|
||||
pub responses: Vec<OpensearchOutput<T>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize)]
|
||||
pub struct OpensearchOutput<T> {
|
||||
pub hits: OpensearchResults<T>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize)]
|
||||
pub struct OpensearchResults<T> {
|
||||
pub total: OpensearchResultsTotal,
|
||||
pub hits: Vec<OpensearchHits<T>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize)]
|
||||
pub struct OpensearchResultsTotal {
|
||||
pub value: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize)]
|
||||
pub struct OpensearchHits<T> {
|
||||
pub _source: T,
|
||||
}
|
||||
@ -23,7 +23,7 @@ use crate::{
|
||||
admin::*,
|
||||
analytics::{
|
||||
api_event::*, connector_events::ConnectorEventsRequest,
|
||||
outgoing_webhook_event::OutgoingWebhookLogsRequest, sdk_events::*, *,
|
||||
outgoing_webhook_event::OutgoingWebhookLogsRequest, sdk_events::*, search::*, *,
|
||||
},
|
||||
api_keys::*,
|
||||
cards_info::*,
|
||||
@ -96,6 +96,10 @@ impl_misc_api_event_type!(
|
||||
ReportRequest,
|
||||
ConnectorEventsRequest,
|
||||
OutgoingWebhookLogsRequest,
|
||||
GetGlobalSearchRequest,
|
||||
GetSearchRequest,
|
||||
GetSearchResponse,
|
||||
GetSearchRequestWithIndex,
|
||||
GetDisputeFilterRequest,
|
||||
DisputeFiltersResponse,
|
||||
GetDisputeMetricRequest
|
||||
|
||||
Reference in New Issue
Block a user