Skip to content

Instantly share code, notes, and snippets.

@AbsolutelySaurabh
Created April 24, 2019 10:25
Show Gist options
  • Save AbsolutelySaurabh/def365cadb6dd31ba3e237a663058175 to your computer and use it in GitHub Desktop.
Save AbsolutelySaurabh/def365cadb6dd31ba3e237a663058175 to your computer and use it in GitHub Desktop.
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))
diffStartEnd := startDateTime.Sub(Date(endDateTime.Year(), endDateTime.Month(), endDateTime.Day(), endDateTime.Hour(), endDateTime.Minute())).Hours() / 24
log.Printf("diffStartEnd: %f", diffStartEnd)
if diffStartEnd < 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.Raw("select * from se_bookings where created_at > '2019-04-18 00:00'")
//generateConditionAndApplyFilter();
return db;
}
return db
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment