mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-06-09 15:07:49 +00:00
feat: add date range filter to marketing list API
Added start_date, end_date, and filter_by query parameters to the GET /api/marketing/ endpoint. Users can now filter marketing records by a date range using either so_date (Sales Order date, default) or created_at as the target column. Changes: - validation: added StartDate, EndDate (YYYY-MM-DD format), and FilterBy (oneof: so_date, created_at) to DeliveryOrderQuery struct - controller: parse the three new query params in GetAll handler - service: apply >=start / <end+1day date range filter in the query modifier using the existing utils.ParseDateRangeForQuery helper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -321,6 +321,21 @@ func (s deliveryOrdersService) GetAll(c *fiber.Ctx, params *validation.DeliveryO
|
||||
return db.Where("id = ?", params.MarketingId)
|
||||
}
|
||||
|
||||
dateStart, dateEnd, dateErr := utils.ParseDateRangeForQuery(params.StartDate, params.EndDate)
|
||||
if dateErr != nil {
|
||||
return db.Where("1 = 0")
|
||||
}
|
||||
dateCol := "marketings.so_date"
|
||||
if strings.TrimSpace(params.FilterBy) == "created_at" {
|
||||
dateCol = "marketings.created_at"
|
||||
}
|
||||
if dateStart != nil {
|
||||
db = db.Where(dateCol+" >= ?", *dateStart)
|
||||
}
|
||||
if dateEnd != nil {
|
||||
db = db.Where(dateCol+" < ?", *dateEnd)
|
||||
}
|
||||
|
||||
orderDir := "DESC"
|
||||
if params.SortOrder != "" {
|
||||
orderDir = strings.ToUpper(params.SortOrder)
|
||||
|
||||
Reference in New Issue
Block a user