Move parameters into consts

This commit is contained in:
2024-01-28 07:13:54 -06:00
parent 41a75b47a6
commit d0ff5b5d4c

View File

@@ -8,6 +8,29 @@ import (
"github.com/samber/lo" "github.com/samber/lo"
) )
const (
paramSubject = "txt_subject"
paramTitle = "txt_courseTitle"
paramKeywords = "txt_keywordlike"
paramOpenOnly = "chk_open_only"
paramTermPart = "txt_partOfTerm"
paramCampus = "txt_campus"
paramAttributes = "txt_attribute"
paramInstructor = "txt_instructor"
paramStartTimeHour = "select_start_hour"
paramStartTimeMinute = "select_start_min"
paramStartTimeMeridiem = "select_start_ampm"
paramEndTimeHour = "select_end_hour"
paramEndTimeMinute = "select_end_min"
paramEndTimeMeridiem = "select_end_ampm"
paramMinCredits = "txt_credithourlow"
paramMaxCredits = "txt_credithourhigh"
paramCourseNumberLow = "txt_course_number_range"
paramCourseNumberHigh = "txt_course_number_range_to"
paramOffset = "pageOffset"
paramMaxResults = "pageMaxSize"
)
type Query struct { type Query struct {
subject *string subject *string
title *string title *string
@@ -172,69 +195,69 @@ func (q *Query) Paramify() map[string]string {
params := map[string]string{} params := map[string]string{}
if q.subject != nil { if q.subject != nil {
params["txt_subject"] = *q.subject params[paramSubject] = *q.subject
} }
if q.title != nil { if q.title != nil {
// Whitespace can prevent valid queries from succeeding // Whitespace can prevent valid queries from succeeding
params["txt_courseTitle"] = strings.TrimSpace(*q.title) params[paramTitle] = strings.TrimSpace(*q.title)
} }
if q.keywords != nil { if q.keywords != nil {
params["txt_keywordlike"] = strings.Join(*q.keywords, " ") params[paramKeywords] = strings.Join(*q.keywords, " ")
} }
if q.openOnly != nil { if q.openOnly != nil {
params["chk_open_only"] = "true" params[paramOpenOnly] = "true"
} }
if q.termPart != nil { if q.termPart != nil {
params["txt_partOfTerm"] = strings.Join(*q.termPart, ",") params[paramTermPart] = strings.Join(*q.termPart, ",")
} }
if q.campus != nil { if q.campus != nil {
params["txt_campus"] = strings.Join(*q.campus, ",") params[paramCampus] = strings.Join(*q.campus, ",")
} }
if q.attributes != nil { if q.attributes != nil {
params["txt_attribute"] = strings.Join(*q.attributes, ",") params[paramAttributes] = strings.Join(*q.attributes, ",")
} }
if q.instructor != nil { if q.instructor != nil {
params["txt_instructor"] = strings.Join(lo.Map(*q.instructor, func(i uint64, _ int) string { params[paramInstructor] = strings.Join(lo.Map(*q.instructor, func(i uint64, _ int) string {
return strconv.FormatUint(i, 10) return strconv.FormatUint(i, 10)
}), ",") }), ",")
} }
if q.startTime != nil { if q.startTime != nil {
hour, minute, meridiem := FormatTimeParameter(*q.startTime) hour, minute, meridiem := FormatTimeParameter(*q.startTime)
params["select_start_hour"] = hour params[paramStartTimeHour] = hour
params["select_start_min"] = minute params[paramStartTimeMinute] = minute
params["select_start_ampm"] = meridiem params[paramStartTimeMeridiem] = meridiem
} }
if q.endTime != nil { if q.endTime != nil {
hour, minute, meridiem := FormatTimeParameter(*q.endTime) hour, minute, meridiem := FormatTimeParameter(*q.endTime)
params["select_end_hour"] = hour params[paramEndTimeHour] = hour
params["select_end_min"] = minute params[paramEndTimeMinute] = minute
params["select_end_ampm"] = meridiem params[paramEndTimeMeridiem] = meridiem
} }
if q.minCredits != nil { if q.minCredits != nil {
params["txt_credithourlow"] = strconv.Itoa(*q.minCredits) params[paramMinCredits] = strconv.Itoa(*q.minCredits)
} }
if q.maxCredits != nil { if q.maxCredits != nil {
params["txt_credithourhigh"] = strconv.Itoa(*q.maxCredits) params[paramMaxCredits] = strconv.Itoa(*q.maxCredits)
} }
if q.courseNumberRange != nil { if q.courseNumberRange != nil {
params["txt_course_number_range"] = strconv.Itoa(q.courseNumberRange.Low) params[paramCourseNumberLow] = strconv.Itoa(q.courseNumberRange.Low)
params["txt_course_number_range_to"] = strconv.Itoa(q.courseNumberRange.High) params[paramCourseNumberHigh] = strconv.Itoa(q.courseNumberRange.High)
} }
params["pageOffset"] = strconv.Itoa(q.offset) params[paramOffset] = strconv.Itoa(q.offset)
params["pageMaxSize"] = strconv.Itoa(q.maxResults) params[paramMaxResults] = strconv.Itoa(q.maxResults)
return params return params
} }