инпуты собираются и осуществляется запрос на эндпоинт в бэк.
Суть запроса в том, чтобы вывести из монги все документы, в которых поля совпадают с тем, что ввёл пользователь.
Сейчас на бэке все аниаршалится в map[string]interface{} и передаётся в collection.FindAll.
Если с фронта прилетает json, в котором отсутвуют поля, то все ок, запрос проходит нормально и проверка по неуказанным полям не происходит.
Но фронт реализован так, что он всегда шлёт поля, просто с нулевыми значениями, если пользователь не указал их. Поэтому при запросе в монгу, неуказанная на фронте строка, например, сравниваетя с "" и документы не выводятся.
Вопрос вот в чем. Мне на бэке надо поведение менять, чтобы работало или на фронте не передавать нулевые значения в джсоне?
Если на бэке, то как правильно это сделать без каста интерфейса пустого?
Вам надо подумать, надо ли отличать ли нулевое значение от пустого. То есть, если прилетел 0 - это будет означать что надо сравнить с нулем или игнорировать поле?
Если так будет всегда, то можно и на бэке все проверять
А как проверять? Итерироваться по мапе, проверять тип и удалять элемент из мапы если значение дефолтное?
Обсуждают сегодня