summaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
authorsiddharth ravikumar <s@ricketyspace.net>2022-06-12 19:51:32 -0400
committersiddharth ravikumar <s@ricketyspace.net>2022-06-12 19:51:32 -0400
commit2f14203efe0514cd4b64085efe9cc5980a276983 (patch)
tree1e5f9b1132a71f7308e71340939ea1b6f181a372 /main.go
parent2726d7d51bb89c0ab41783ab359b5ed7ad29a758 (diff)
search: move search stuff to its own package
Diffstat (limited to 'main.go')
-rw-r--r--main.go46
1 files changed, 2 insertions, 44 deletions
diff --git a/main.go b/main.go
index b9bd1b1..e328636 100644
--- a/main.go
+++ b/main.go
@@ -12,9 +12,9 @@ import (
"net/http"
"regexp"
"strconv"
- "strings"
"ricketyspace.net/peach/photon"
+ "ricketyspace.net/peach/search"
"ricketyspace.net/peach/version"
"ricketyspace.net/peach/weather"
)
@@ -35,14 +35,6 @@ var peachTemplates = template.Must(template.ParseFS(peachFS, "templates/*.tmpl")
// Lat,Long regex.
var latLngRegex = regexp.MustCompile(`/(-?[0-9]+\.?[0-9]+?),(-?[0-9]+\.?[0-9]+)`)
-type Search struct {
- Title string
- Version string
- Location string
- Message string
- MatchingCoords []photon.Coordinates
-}
-
func init() {
flag.Parse()
if *peachPort < 80 {
@@ -116,7 +108,7 @@ func showSearch(w http.ResponseWriter, r *http.Request) {
return
}
- search, err := NewSearch(r)
+ search, err := search.NewSearch(r)
if err != nil {
http.Error(w, err.Error(), 500)
return
@@ -139,40 +131,6 @@ func serveStaticFile(w http.ResponseWriter, r *http.Request) {
server.ServeHTTP(w, r)
}
-func NewSearch(r *http.Request) (*Search, error) {
- s := new(Search)
- s.Title = "search"
- s.Version = version.Version
-
- if r.Method == "GET" {
- return s, nil
- }
-
- // Get location.
- err := r.ParseForm()
- if err != nil {
- return s, fmt.Errorf("form: %v", err)
- }
- location := strings.TrimSpace(r.PostForm.Get("location"))
- s.Location = location
- if len(location) < 2 {
- s.Message = "location invalid"
- }
-
- // Try to fetch matching coordinates.
- s.MatchingCoords, err = photon.Geocode(location)
- if err != nil {
- log.Printf("search: geocode: %v", err)
- s.Message = "unable to lookup location"
- return s, nil
- }
- if len(s.MatchingCoords) < 1 {
- s.Message = "location not found"
- return s, nil
- }
- return s, nil
-}
-
func logRequest(r *http.Request) {
addr := r.RemoteAddr
if len(r.Header.Get("X-Forwarded-For")) > 0 {