Size: a a a

2020 December 30

ΑZ

Αλεχ Zhukovsky in rust_offtopic
по идее
источник

p

polunin.ai in rust_offtopic
Αλεχ Zhukovsky
ну то есть щас у меня эт осделано через мидлварь которая после авторизации в req.extensions() пихает сервисы, которые она регистрирует на основании содержимого Request. Это неудобно потому что хендлер должен знать, какие данные он принимает аргументами, а какие - из req.extensions(). Кроме как макросней это решить я не придумал что можно сделать
кек
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
што?
источник

p

polunin.ai in rust_offtopic
хешмапа dyn Any
источник

p

polunin.ai in rust_offtopic
ниасилил франк
источник

∅ч

∅ ч in rust_offtopic
это из актикса шоли?
источник

p

polunin.ai in rust_offtopic
∅ ч
это из актикса шоли?
да
источник

H

Hirrolot in rust_offtopic
а кошкодевочки?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
polunin.ai
ниасилил франк
так франк тут не поможет
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
в шарпе-то это довольно трудно
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
в а расте вообще бенешься
источник

p

polunin.ai in rust_offtopic
Αλεχ Zhukovsky
так франк тут не поможет
ну на самом деле это изи просто тогда неюзабельно будет
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
polunin.ai
ну на самом деле это изи просто тогда неюзабельно будет
ну офк ограничение чтоб было юзабельно .иначе кому это нужно
источник

p

polunin.ai in rust_offtopic
https://docs.rs/actix-web/3.3.2/actix_web/dev/trait.Service.html
мне кажется что это можно через кастомный сервис запилить
источник

p

polunin.ai in rust_offtopic
а нет не могу
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
@DogeShibu ну по идее можно как-то так разделить

pub async fn put_current_company_custom_settings(
   req: HttpRequest,
   company_settings_service: web::Data<CompanySettingsService>,
   uri_params: web::Path<(Uuid,)>,
   body: web::Json<CustomSettingsUpdate>,
) -> HttpResponse {
   let extensions = req.extensions();
   let payload = RequestPayload {
       user_model: extensions.get().unwrap(),
       company_settings_service: &company_settings_service,
       custom_settigns_provider: extensions.get().unwrap(),
       company_id: uri_params.0,
       new: body.0
   };
   put_current_company_custom_settings_impl(
payload
   ).await
}

pub struct RequestPayload<'a> {
   user_model: &'a UserModel,
   company_settings_service: &'a CompanySettingsService,
   custom_settigns_provider: &'a CustomSettingsMerger,
   company_id: Uuid,
   new: CustomSettingsUpdate,
}

pub async fn put_current_company_custom_settings_impl(
   request_payload: RequestPayload<'_>,
) -> HttpResponse {

И
метод-обертку со структуркой генерить макросом. Как по-другому сделать яхз
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
@DogeShibu ну по идее можно как-то так разделить

pub async fn put_current_company_custom_settings(
   req: HttpRequest,
   company_settings_service: web::Data<CompanySettingsService>,
   uri_params: web::Path<(Uuid,)>,
   body: web::Json<CustomSettingsUpdate>,
) -> HttpResponse {
   let extensions = req.extensions();
   let payload = RequestPayload {
       user_model: extensions.get().unwrap(),
       company_settings_service: &company_settings_service,
       custom_settigns_provider: extensions.get().unwrap(),
       company_id: uri_params.0,
       new: body.0
   };
   put_current_company_custom_settings_impl(
payload
   ).await
}

pub struct RequestPayload<'a> {
   user_model: &'a UserModel,
   company_settings_service: &'a CompanySettingsService,
   custom_settigns_provider: &'a CustomSettingsMerger,
   company_id: Uuid,
   new: CustomSettingsUpdate,
}

pub async fn put_current_company_custom_settings_impl(
   request_payload: RequestPayload<'_>,
) -> HttpResponse {

И
метод-обертку со структуркой генерить макросом. Как по-другому сделать яхз
Я бы так сделал:

fn put_current_company_custom_settings(custom_settings: HasCustomSettings, user_model: HasUserModel, ...) -> ...
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
увы все ещё нужно знать откуда прилетают параметры
источник

DS

Doge Shibu in rust_offtopic
И HasCustomSettings, HasUserModel - получают из extensions занчения в FromRequest'е
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну наверное
источник