Browse Source

chore: basic convertDatesToUnix function added; needs work to not re-write every possible date param

cli-archive
nic 1 year ago
parent
commit
c2db027890
  1. 34
      internal/handlers/web/jobs.go

34
internal/handlers/web/jobs.go

@ -7,6 +7,7 @@ import (
"marmic/servicetrade-toolbox/internal/api"
"net/http"
"net/url"
"time"
)
func JobsHandler(w http.ResponseWriter, r *http.Request) {
@ -59,19 +60,42 @@ func JobsHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "Not Found", http.StatusNotFound)
}
}
func handleJobSearch(r *http.Request, session *api.Session) ([]api.Job, error) {
queryParams := r.URL.Query()
func convertDatesToUnix(params url.Values) url.Values {
cleanedParams := url.Values{}
log.Printf("Searching jobs with filters: %v", queryParams)
for key, values := range queryParams {
const layout = "2006-01-02"
if beginDate := params.Get("dueByBegin"); beginDate != "" {
if t, err := time.Parse(layout, beginDate); err == nil {
cleanedParams.Add("dueByBegin", fmt.Sprintf("%d", t.Unix()))
} else {
fmt.Printf("Error parsing dueByBegin: %v\n", err)
}
}
if endDate := params.Get("dueByEnd"); endDate != "" {
if t, err := time.Parse(layout, endDate); err == nil {
cleanedParams.Add("dueByEnd", fmt.Sprintf("%d", t.Unix()))
} else {
fmt.Printf("Error parsing dueByEnd: %v\n", err)
}
}
for key, values := range params {
if key != "dueByBegin" && key != "dueByEnd" {
for _, value := range values {
if value != "" {
cleanedParams.Add(key, value)
}
}
}
}
return cleanedParams
}
func handleJobSearch(r *http.Request, session *api.Session) ([]api.Job, error) {
queryParams := r.URL.Query()
cleanedParams := convertDatesToUnix(queryParams)
jobs, err := session.SearchJobs(cleanedParams)
if err != nil {

Loading…
Cancel
Save