Skip to content

Instantly share code, notes, and snippets.

@AbsolutelySaurabh
Created April 18, 2019 07:29
Show Gist options
  • Save AbsolutelySaurabh/2c3a224c06d5902909d0cf11d9ecdab9 to your computer and use it in GitHub Desktop.
Save AbsolutelySaurabh/2c3a224c06d5902909d0cf11d9ecdab9 to your computer and use it in GitHub Desktop.
//admin
booking.Filter(&admin.Filter{
Label: "Created At",
Name: "CreatedAt",
Type: "datetime",
Handler: func(db *gorm.DB, argument *admin.FilterArgument) *gorm.DB {
startDate := argument.Value.Get("Start").Value
endDate := argument.Value.Get("End").Value
startDateTime, _ := time.Parse(C.DATE_YYYY_MM_DD_HH_MM, utils.ToString(startDate))
endDateTime, _ := time.Parse(C.DATE_YYYY_MM_DD_HH_MM, utils.ToString(endDate))
if startDateTime.Sub(endDateTime) < 0 {
log.Printf("utils.Tostrng(): %s", utils.ToString(startDate))
log.Printf("startDateTime: %v", startDateTime.Format(C.DATE_YYYY_MM_DD_HH_MM))
log.Printf("endDateTime: %v", endDateTime.Format(C.DATE_YYYY_MM_DD_HH_MM))
////the createdAt[it's in gorm.Model.createdAt] start-date should not be < 365 from current date
diff := startDateTime.Sub(Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), time.Now().Hour(), time.Now().Minute())).Hours() / 24
log.Printf("diff days: %f", diff)
if diff < -365 {
logs.GetLogger().Error("Invalid CreatedAt filter!")
errors.New("Invalid CreatedAt filter.")
log.Printf("invalid start date: ")
return db
}
//need to return the sql query with applied filters
}
return db
},
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment