Skip to content

Commit cbb3675

Browse files
committed
visit by year chart added
1 parent 58357a0 commit cbb3675

27 files changed

+2831
-400
lines changed

proto/dashboard.proto

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,38 @@ message DashboardResponse {
88
bool status = 1;
99
}
1010

11+
// Get visits by year
12+
message VisitByYear {
13+
int64 visits = 1;
14+
string month = 2;
15+
}
16+
message VisitByContentType {
17+
int64 visits = 1;
18+
string month = 2;
19+
string content_type = 3;
20+
}
21+
22+
message VisitByYearRequest {
23+
int64 year = 1;
24+
}
25+
message VisitByYearResponse {
26+
bool status = 1;
27+
repeated VisitByYear data = 2;
28+
}
29+
30+
31+
32+
message VisitByContentTypeRequest {
33+
string content_type = 1;
34+
int64 year = 2;
35+
}
36+
message VisitByContentTypeResponse {
37+
bool status = 1;
38+
repeated VisitByContentType data = 2;
39+
}
40+
1141
service Dashboard {
1242
rpc Dashboard(DashboardRequest) returns (DashboardResponse);
43+
rpc GetVisitByYear(VisitByYearRequest) returns (VisitByYearResponse);
44+
rpc GetVisitByContentType(VisitByContentTypeRequest) returns (VisitByContentTypeResponse);
1345
}

src/api/dashboard_api.rs

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::api::proto::dashboard::dashboard_server::Dashboard;
2-
use crate::api::proto::dashboard::{DashboardRequest, DashboardResponse};
2+
use crate::api::proto::dashboard::{DashboardRequest, DashboardResponse, VisitByContentTypeRequest, VisitByContentTypeResponse, VisitByYearRequest, VisitByYearResponse};
33
use crate::avored_state::AvoRedState;
44
use crate::extensions::tonic_request::TonicRequest;
55
use crate::models::admin_user_model::AdminUserModelExtension;
@@ -32,4 +32,54 @@ impl Dashboard for DashboardApi {
3232
let reply = DashboardResponse { status: true };
3333
Ok(Response::new(reply))
3434
}
35+
36+
async fn get_visit_by_year(
37+
&self,
38+
request: Request<VisitByYearRequest>,
39+
) -> Result<Response<VisitByYearResponse>, Status> {
40+
println!("->> {:<12} - get_visit_by_year", "gRPC_Dashboard_Api_Service");
41+
42+
let claims = request.get_token_claim()?;
43+
let req = request.into_inner();
44+
45+
let _logged_in_user = claims.admin_user_model;
46+
let visit_result =self
47+
.state
48+
.general_service
49+
.get_visit_by_year(
50+
&self.state.db,
51+
req.year,
52+
)
53+
.await?;
54+
55+
let reply = VisitByYearResponse { status: true, data: visit_result };
56+
57+
Ok(Response::new(reply))
58+
}
59+
60+
async fn get_visit_by_content_type(
61+
&self,
62+
request: Request<VisitByContentTypeRequest>,
63+
) -> Result<Response<VisitByContentTypeResponse>, Status> {
64+
println!("->> {:<12} - get_visit_by_year", "gRPC_Dashboard_Api_Service");
65+
66+
let claims = request.get_token_claim()?;
67+
let req = request.into_inner();
68+
69+
let _logged_in_user = claims.admin_user_model;
70+
let visit_result =self
71+
.state
72+
.general_service
73+
.get_visit_by_content_type(
74+
&self.state.db,
75+
req.content_type,
76+
req.year,
77+
)
78+
.await?;
79+
80+
let reply = VisitByContentTypeResponse { status: true, data: visit_result };
81+
82+
83+
Ok(Response::new(reply))
84+
}
3585
}

src/api/proto/admin_user.rs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,8 @@ pub mod admin_user_client {
298298
where
299299
T: tonic::client::GrpcService<tonic::body::Body>,
300300
T::Error: Into<StdError>,
301-
T::ResponseBody: Body<Data = Bytes> + Send + 'static,
302-
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
301+
T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
302+
<T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
303303
{
304304
pub fn new(inner: T) -> Self {
305305
let inner = tonic::client::Grpc::new(inner);
@@ -316,15 +316,15 @@ pub mod admin_user_client {
316316
where
317317
F: tonic::service::Interceptor,
318318
T::ResponseBody: Default,
319-
T: Service<
319+
T: tonic::codegen::Service<
320320
http::Request<tonic::body::Body>,
321321
Response = http::Response<
322322
<T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
323323
>,
324324
>,
325-
<T as Service<
325+
<T as tonic::codegen::Service<
326326
http::Request<tonic::body::Body>,
327-
>>::Error: Into<StdError> + Send + Sync,
327+
>>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
328328
{
329329
AdminUserClient::new(InterceptedService::new(inner, interceptor))
330330
}
@@ -362,7 +362,7 @@ pub mod admin_user_client {
362362
pub async fn paginate(
363363
&mut self,
364364
request: impl tonic::IntoRequest<super::AdminUserPaginateRequest>,
365-
) -> Result<
365+
) -> std::result::Result<
366366
tonic::Response<super::AdminUserPaginateResponse>,
367367
tonic::Status,
368368
> {
@@ -386,7 +386,7 @@ pub mod admin_user_client {
386386
pub async fn store_admin_user(
387387
&mut self,
388388
request: impl tonic::IntoRequest<super::StoreAdminUserRequest>,
389-
) -> Result<
389+
) -> std::result::Result<
390390
tonic::Response<super::StoreAdminUserResponse>,
391391
tonic::Status,
392392
> {
@@ -410,7 +410,7 @@ pub mod admin_user_client {
410410
pub async fn get_admin_user(
411411
&mut self,
412412
request: impl tonic::IntoRequest<super::GetAdminUserRequest>,
413-
) -> Result<
413+
) -> std::result::Result<
414414
tonic::Response<super::GetAdminUserResponse>,
415415
tonic::Status,
416416
> {
@@ -434,7 +434,7 @@ pub mod admin_user_client {
434434
pub async fn update_admin_user(
435435
&mut self,
436436
request: impl tonic::IntoRequest<super::UpdateAdminUserRequest>,
437-
) -> Result<
437+
) -> std::result::Result<
438438
tonic::Response<super::UpdateAdminUserResponse>,
439439
tonic::Status,
440440
> {
@@ -458,7 +458,7 @@ pub mod admin_user_client {
458458
pub async fn role_paginate(
459459
&mut self,
460460
request: impl tonic::IntoRequest<super::RolePaginateRequest>,
461-
) -> Result<
461+
) -> std::result::Result<
462462
tonic::Response<super::RolePaginateResponse>,
463463
tonic::Status,
464464
> {
@@ -482,7 +482,7 @@ pub mod admin_user_client {
482482
pub async fn role_option(
483483
&mut self,
484484
request: impl tonic::IntoRequest<super::RoleOptionRequest>,
485-
) -> Result<
485+
) -> std::result::Result<
486486
tonic::Response<super::RoleOptionResponse>,
487487
tonic::Status,
488488
> {
@@ -506,7 +506,7 @@ pub mod admin_user_client {
506506
pub async fn store_role(
507507
&mut self,
508508
request: impl tonic::IntoRequest<super::StoreRoleRequest>,
509-
) -> Result<
509+
) -> std::result::Result<
510510
tonic::Response<super::StoreRoleResponse>,
511511
tonic::Status,
512512
> {
@@ -530,7 +530,7 @@ pub mod admin_user_client {
530530
pub async fn get_role(
531531
&mut self,
532532
request: impl tonic::IntoRequest<super::GetRoleRequest>,
533-
) -> Result<
533+
) -> std::result::Result<
534534
tonic::Response<super::GetRoleResponse>,
535535
tonic::Status,
536536
> {
@@ -554,7 +554,7 @@ pub mod admin_user_client {
554554
pub async fn update_role(
555555
&mut self,
556556
request: impl tonic::IntoRequest<super::UpdateRoleRequest>,
557-
) -> Result<
557+
) -> std::result::Result<
558558
tonic::Response<super::UpdateRoleResponse>,
559559
tonic::Status,
560560
> {
@@ -578,7 +578,7 @@ pub mod admin_user_client {
578578
pub async fn put_role_identifier(
579579
&mut self,
580580
request: impl tonic::IntoRequest<super::PutRoleIdentifierRequest>,
581-
) -> Result<
581+
) -> std::result::Result<
582582
tonic::Response<super::PutRoleIdentifierResponse>,
583583
tonic::Status,
584584
> {
@@ -602,7 +602,7 @@ pub mod admin_user_client {
602602
pub async fn delete_role(
603603
&mut self,
604604
request: impl tonic::IntoRequest<super::DeleteRoleRequest>,
605-
) -> Result<
605+
) -> std::result::Result<
606606
tonic::Response<super::DeleteRoleResponse>,
607607
tonic::Status,
608608
> {
@@ -626,7 +626,7 @@ pub mod admin_user_client {
626626
pub async fn delete_admin_user(
627627
&mut self,
628628
request: impl tonic::IntoRequest<super::DeleteAdminUserRequest>,
629-
) -> Result<
629+
) -> std::result::Result<
630630
tonic::Response<super::DeleteAdminUserResponse>,
631631
tonic::Status,
632632
> {
@@ -650,7 +650,7 @@ pub mod admin_user_client {
650650
pub async fn change_admin_user_password(
651651
&mut self,
652652
request: impl tonic::IntoRequest<super::ChangeAdminUserPasswordRequest>,
653-
) -> Result<
653+
) -> std::result::Result<
654654
tonic::Response<super::ChangeAdminUserPasswordResponse>,
655655
tonic::Status,
656656
> {
@@ -687,92 +687,92 @@ pub mod admin_user_server {
687687
use tonic::codegen::*;
688688
/// Generated trait containing gRPC methods that should be implemented for use with AdminUserServer.
689689
#[async_trait]
690-
pub trait AdminUser: Send + Sync + 'static {
690+
pub trait AdminUser: std::marker::Send + std::marker::Sync + 'static {
691691
async fn paginate(
692692
&self,
693693
request: tonic::Request<super::AdminUserPaginateRequest>,
694-
) -> Result<
694+
) -> std::result::Result<
695695
tonic::Response<super::AdminUserPaginateResponse>,
696696
tonic::Status,
697697
>;
698698
async fn store_admin_user(
699699
&self,
700700
request: tonic::Request<super::StoreAdminUserRequest>,
701-
) -> Result<
701+
) -> std::result::Result<
702702
tonic::Response<super::StoreAdminUserResponse>,
703703
tonic::Status,
704704
>;
705705
async fn get_admin_user(
706706
&self,
707707
request: tonic::Request<super::GetAdminUserRequest>,
708-
) -> Result<
708+
) -> std::result::Result<
709709
tonic::Response<super::GetAdminUserResponse>,
710710
tonic::Status,
711711
>;
712712
async fn update_admin_user(
713713
&self,
714714
request: tonic::Request<super::UpdateAdminUserRequest>,
715-
) -> Result<
715+
) -> std::result::Result<
716716
tonic::Response<super::UpdateAdminUserResponse>,
717717
tonic::Status,
718718
>;
719719
async fn role_paginate(
720720
&self,
721721
request: tonic::Request<super::RolePaginateRequest>,
722-
) -> Result<
722+
) -> std::result::Result<
723723
tonic::Response<super::RolePaginateResponse>,
724724
tonic::Status,
725725
>;
726726
async fn role_option(
727727
&self,
728728
request: tonic::Request<super::RoleOptionRequest>,
729-
) -> Result<
729+
) -> std::result::Result<
730730
tonic::Response<super::RoleOptionResponse>,
731731
tonic::Status,
732732
>;
733733
async fn store_role(
734734
&self,
735735
request: tonic::Request<super::StoreRoleRequest>,
736-
) -> Result<
736+
) -> std::result::Result<
737737
tonic::Response<super::StoreRoleResponse>,
738738
tonic::Status,
739739
>;
740740
async fn get_role(
741741
&self,
742742
request: tonic::Request<super::GetRoleRequest>,
743-
) -> Result<tonic::Response<super::GetRoleResponse>, tonic::Status>;
743+
) -> std::result::Result<tonic::Response<super::GetRoleResponse>, tonic::Status>;
744744
async fn update_role(
745745
&self,
746746
request: tonic::Request<super::UpdateRoleRequest>,
747-
) -> Result<
747+
) -> std::result::Result<
748748
tonic::Response<super::UpdateRoleResponse>,
749749
tonic::Status,
750750
>;
751751
async fn put_role_identifier(
752752
&self,
753753
request: tonic::Request<super::PutRoleIdentifierRequest>,
754-
) -> Result<
754+
) -> std::result::Result<
755755
tonic::Response<super::PutRoleIdentifierResponse>,
756756
tonic::Status,
757757
>;
758758
async fn delete_role(
759759
&self,
760760
request: tonic::Request<super::DeleteRoleRequest>,
761-
) -> Result<
761+
) -> std::result::Result<
762762
tonic::Response<super::DeleteRoleResponse>,
763763
tonic::Status,
764764
>;
765765
async fn delete_admin_user(
766766
&self,
767767
request: tonic::Request<super::DeleteAdminUserRequest>,
768-
) -> Result<
768+
) -> std::result::Result<
769769
tonic::Response<super::DeleteAdminUserResponse>,
770770
tonic::Status,
771771
>;
772772
async fn change_admin_user_password(
773773
&self,
774774
request: tonic::Request<super::ChangeAdminUserPasswordRequest>,
775-
) -> Result<
775+
) -> std::result::Result<
776776
tonic::Response<super::ChangeAdminUserPasswordResponse>,
777777
tonic::Status,
778778
>;
@@ -836,19 +836,19 @@ pub mod admin_user_server {
836836
self
837837
}
838838
}
839-
impl<T, B> Service<http::Request<B>> for AdminUserServer<T>
839+
impl<T, B> tonic::codegen::Service<http::Request<B>> for AdminUserServer<T>
840840
where
841841
T: AdminUser,
842-
B: Body + Send + 'static,
843-
B::Error: Into<StdError> + Send + 'static,
842+
B: Body + std::marker::Send + 'static,
843+
B::Error: Into<StdError> + std::marker::Send + 'static,
844844
{
845845
type Response = http::Response<tonic::body::Body>;
846846
type Error = std::convert::Infallible;
847847
type Future = BoxFuture<Self::Response, Self::Error>;
848848
fn poll_ready(
849849
&mut self,
850850
_cx: &mut Context<'_>,
851-
) -> Poll<Result<(), Self::Error>> {
851+
) -> Poll<std::result::Result<(), Self::Error>> {
852852
Poll::Ready(Ok(()))
853853
}
854854
fn call(&mut self, req: http::Request<B>) -> Self::Future {

0 commit comments

Comments
 (0)