mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-04 14:07:18 +08:00 
			
		
		
		
	feat: realtime user analytics (#5098)
Co-authored-by: Sampras Lopes <Sampras.lopes@juspay.in>
This commit is contained in:
		@ -24,7 +24,8 @@ where
 | 
			
		||||
    Aggregate<&'static str>: ToSql<T>,
 | 
			
		||||
    Window<&'static str>: ToSql<T>,
 | 
			
		||||
{
 | 
			
		||||
    let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
    let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
        QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
 | 
			
		||||
    query_builder.add_select_column(dimension).switch()?;
 | 
			
		||||
    time_range
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,8 @@ where
 | 
			
		||||
        time_range: &TimeRange,
 | 
			
		||||
        pool: &T,
 | 
			
		||||
    ) -> MetricsResult<Vec<(SdkEventMetricsBucketIdentifier, SdkEventMetricRow)>> {
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> = QueryBuilder::new(AnalyticsCollection::SdkEvents);
 | 
			
		||||
        let mut query_builder: QueryBuilder<T> =
 | 
			
		||||
            QueryBuilder::new(AnalyticsCollection::SdkEventsAnalytics);
 | 
			
		||||
        let dimensions = dimensions.to_vec();
 | 
			
		||||
 | 
			
		||||
        for dim in dimensions.iter() {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user