35 lines
701 B
Go
35 lines
701 B
Go
|
package api
|
||
|
|
||
|
import (
|
||
|
"net/http"
|
||
|
|
||
|
"code.nonshy.com/nonshy/website/pkg/models"
|
||
|
)
|
||
|
|
||
|
// WorldCities API searches the location database for a world city location.
|
||
|
func WorldCities() http.HandlerFunc {
|
||
|
type Result struct {
|
||
|
ID uint64 `json:"id"`
|
||
|
Value string `json:"value"`
|
||
|
}
|
||
|
|
||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||
|
var query = r.FormValue("query")
|
||
|
if query == "" {
|
||
|
SendRawJSON(w, http.StatusOK, []Result{})
|
||
|
return
|
||
|
}
|
||
|
|
||
|
result, err := models.SearchWorldCities(query)
|
||
|
if err != nil {
|
||
|
SendRawJSON(w, http.StatusInternalServerError, []Result{{
|
||
|
ID: 1,
|
||
|
Value: err.Error(),
|
||
|
}})
|
||
|
return
|
||
|
}
|
||
|
|
||
|
SendRawJSON(w, http.StatusOK, result)
|
||
|
})
|
||
|
}
|