music_player_server/
addons.rs1use std::sync::Arc;
2
3use music_player_storage::Database;
4use tokio::sync::Mutex;
5
6use crate::api::music::v1alpha1::addons_service_server::AddonsService;
7use crate::api::music::v1alpha1::{
8 GetAddonDetailsRequest, GetAddonDetailsResponse, GetAddonsRequest, GetAddonsResponse,
9 SetAddonEnabledRequest, SetAddonEnabledResponse,
10};
11
12use crate::api::objects::v1alpha1::Addon;
13
14pub struct Addons {
15 db: Database,
16}
17
18impl Addons {
19 pub fn new(db: Database) -> Self {
20 Self { db }
21 }
22}
23
24#[tonic::async_trait]
25impl AddonsService for Addons {
26 async fn get_addons(
27 &self,
28 _request: tonic::Request<GetAddonsRequest>,
29 ) -> Result<tonic::Response<GetAddonsResponse>, tonic::Status> {
30 let response = GetAddonsResponse { addons: vec![] };
31 Ok(tonic::Response::new(response))
32 }
33 async fn get_addon_details(
34 &self,
35 _request: tonic::Request<GetAddonDetailsRequest>,
36 ) -> Result<tonic::Response<GetAddonDetailsResponse>, tonic::Status> {
37 let response = GetAddonDetailsResponse {
38 addon: Some(Addon::default()),
39 };
40 Ok(tonic::Response::new(response))
41 }
42 async fn set_addon_enabled(
43 &self,
44 _request: tonic::Request<SetAddonEnabledRequest>,
45 ) -> Result<tonic::Response<SetAddonEnabledResponse>, tonic::Status> {
46 let response = SetAddonEnabledResponse {};
47 Ok(tonic::Response::new(response))
48 }
49}