Nikolay
А как там поменять
Nikolay
Там всего то один аргумент
Vasily
Ну как,апи переделать
Vasily
Я там два видел
Nikolay
Я не понимаю 🙈
Nikolay
Ну processcontext вообще такого нет :D
Vasily
Processcommands
Nikolay
Vasily
Извиняюсь
Nikolay
Так, и что поменять?
Vasily
Смотри, у тебя контекст идёт первым
Vasily
Хотя по логике применяется последним
Nikolay
Ну, это даже хз как лучше
Nikolay
Есть попроще задача
Nikolay
Nikolay
Вот тут нужно сделать так:
Если json.File заканчивается на .gif, то вызываем функцию sendDocument, иначе функцию sendPhoto
Nikolay
Они полностью одинаковые, но возвращают разный результат
Nikolay
Как бы хз как лучше
Vasily
Можно обычным ифом
Vasily
Можно заматчить
Vasily
Можно активный паттерн написать
Nikolay
Проблема в том, что придётся копипастить код отправки запроса
Nikolay
с async который
Vasily
А,его в отдельную функцию
Vasily
Которая принимает функцию
Nikolay
Nikolay
Было бы идеально из match вернуть функцию
Nikolay
Сигнатуры одинаковые кроме возвращаемого значения
Nikolay
Хотя там можно привести к интерфейсу общему
Vasily
Ну верни функцию
Nikolay
Vladislav
Кстати литералы капсом нельзя вроде
Hog
let fn =...
| true -> fun cid f -> sendDocument cid f
| false -> .... sendPhoto...
fn ... ... |> execute context
Vladislav
Как и в шарпе
Vladislav
Я про api_url
Hog
Я про api_url
Да можно вроде - просто ругнётся, что не по код конвеншону
Hog
А, блин реквесты тоже разные :(
Nikolay
А я хз какой конвеншн у литералов
Nikolay
pascal case?
Nikolay
Hog
Вроде :)
Hog
А реквесты кастануть?
Nikolay
Они все реализуют интерфейс IRequestBase<Message>
Nikolay
Может быть они должны возващать IRequestBase, вместо SendPhotoReq/SendDocumentReq?
Hog
Может как тип результата этой фн указать?
Nikolay
Hog
Про конвеншон - я где-то подсмотрел ещё литерал между летом и именем указывать :)
Nikolay
Nikolay
Ужасно
Hog
Nikolay
Могу конечно сделать, чтобы библиотека возвращала IRequestBase, но насколько это правильно - хз
Nikolay
Как бы этим ничего не поломаю
Hog
Полиморфизьм же
Nikolay
Ну так он сейчас есть
Nikolay
У меня execute обрабатывает разные реквесты
Hog
Если в моём варианте лямбдам явно тип результата прописать?
Hog
fn (cid f) : IReq... ->
?
Nikolay
Nikolay
Пробовал
Hog
Не?
Nikolay
Hog
Внутри матча
Nikolay
Вообще хочется ещё chad id и file указывать потом
Nikolay
Если оба будут интерфейс возвращать, получится очень классно
Hog
Так я вроде так и предложил
Nikolay
Nikolay
Вот так было бы)
Hog
Надо оба сенда ещё обернуть
Nikolay
Hog
let fn =...
| true -> fun (cid f) : IRequestBase<Message> -> sendDocument cid f
| false -> .... sendPhoto...
fn ... ... |> execute context
Hog
Хотя тоже не очень
Nikolay
Nikolay
Сделать бы без явного указания типов
Hog
Тогда сенды должны один тип возвращать
Nikolay
@AnutaU я вижу ты тут
Hog
Вся проблема, что экспрешн должен быть одного типа, а если результат сендов разный, то и иф и матч ну никак не угадают интерфейс
Анна
Nikolay
Nikolay
Есть вопрос к тебе :)