Size: a a a

2020 March 06

Д

Дмитрий in Go-go!
а можно пример, типо реализация в эту структуру будет инжектить указатель на билдер, и структура с парамсами будет менять запрос?
источник

а

а кто это in Go-go!
Дмитрий
а можно пример, типо реализация в эту структуру будет инжектить указатель на билдер, и структура с парамсами будет менять запрос?
интерфейс можно передать
источник

Д

Дмитрий in Go-go!
хочется вроде такого API:

repository.GetPosts(ctx, WithRatingOver(10), WithActive(true), WithCreatedAfter(time.Now().Add(-time.Hour * 24))
источник

A

Artem in Go-go!
Дмитрий
а через $1 пробовал []byte передавать?
да, попробовал. Результат такой же
источник

Д

Дмитрий in Go-go!
Artem
да, попробовал. Результат такой же
а ошибок нет?
источник

а

а кто это in Go-go!
Дмитрий
хочется вроде такого API:

repository.GetPosts(ctx, WithRatingOver(10), WithActive(true), WithCreatedAfter(time.Now().Add(-time.Hour * 24))
type QueryParam func(q *Query)

func GetPosts(ctx context.Context, q ...QueryParam)
источник

а

а кто это in Go-go!
в принципе тоже нормально получается
источник

A

Artem in Go-go!
Дмитрий
а ошибок нет?
нет, запрос отрабатывает без ошибок. Он как бы выполняется ибо увеличивается id от SEQUENCE, но записи новой не появляется
источник

Д

Дмитрий in Go-go!
а кто это
type QueryParam func(q *Query)

func GetPosts(ctx context.Context, q ...QueryParam)
это понятно) *Query - это что? 100500 строк реализации своего билдера?
источник

а

а кто это in Go-go!
Дмитрий
это понятно) *Query - это что? 100500 строк реализации своего билдера?
та структура, которая представляет собой запрос
источник

Д

Дмитрий in Go-go!
Artem
нет, запрос отрабатывает без ошибок. Он как бы выполняется ибо увеличивается id от SEQUENCE, но записи новой не появляется
id увеличивается из-за транзакции скорее всего
источник

A

Artem in Go-go!
Дмитрий
id увеличивается из-за транзакции скорее всего
да, скорее всего
источник

а

а кто это in Go-go!
из которой ты потом собираешь скл и выполняешь
источник

Д

Дмитрий in Go-go!
а кто это
та структура, которая представляет собой запрос
не совсем понимаю как будет выглядеть сама структура
источник

Д

Дмитрий in Go-go!
а кто это
из которой ты потом собираешь скл и выполняешь
ну это самая сложная часть)
источник

Д

Дмитрий in Go-go!
можешь набросать примерно пару строк на примере допустим WHERE id > ? как она будет конвертить/патчить запрос?
источник

Д

Дмитрий in Go-go!
или скинь ссылку на пример, если видел подобное где-то
источник

AS

Andrei 🦉 Sergeev in Go-go!
Дмитрий
можешь набросать примерно пару строк на примере допустим WHERE id > ? как она будет конвертить/патчить запрос?
лучше посмотреть на готовые query builder’ы, вроде https://github.com/Masterminds/squirrel
источник

AS

Andrei 🦉 Sergeev in Go-go!
а поверх этой либы уже навертеть своих методов
источник

Д

Дмитрий in Go-go!
ну я squirrel и хотел юзать.. только как-то надо элегантно закрыть все это внутри, чтобы депсы не торчали наружу и можно было бы бесшовно менять все туда-сюда, чтобы код снаружи не пришлось переделывать. ещё желательно чтобы писанины много не было. надо подумать как.
источник