music_player_server/
addons.rs

1use 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}