Rename package database -> geo

This commit is contained in:
Martin Polden 2018-08-14 21:00:46 +02:00
parent 3497e6e28a
commit 059db6372c
4 changed files with 18 additions and 18 deletions

View File

@ -9,7 +9,7 @@ import (
"github.com/mpolden/ipd/http"
"github.com/mpolden/ipd/iputil"
"github.com/mpolden/ipd/iputil/database"
"github.com/mpolden/ipd/iputil/geo"
)
func main() {
@ -28,12 +28,12 @@ func main() {
}
log := log.New(os.Stderr, "ipd: ", 0)
db, err := database.New(opts.CountryDBPath, opts.CityDBPath)
r, err := geo.Open(opts.CountryDBPath, opts.CityDBPath)
if err != nil {
log.Fatal(err)
}
server := http.New(db)
server := http.New(r)
server.Template = opts.Template
server.IPHeaders = opts.IPHeaders
if opts.ReverseLookup {

View File

@ -7,7 +7,7 @@ import (
"path/filepath"
"github.com/mpolden/ipd/iputil"
"github.com/mpolden/ipd/iputil/database"
"github.com/mpolden/ipd/iputil/geo"
"github.com/mpolden/ipd/useragent"
"net"
@ -25,7 +25,7 @@ type Server struct {
IPHeaders []string
LookupAddr func(net.IP) (string, error)
LookupPort func(net.IP, uint64) error
db database.Client
gr geo.Reader
}
type Response struct {
@ -43,8 +43,8 @@ type PortResponse struct {
Reachable bool `json:"reachable"`
}
func New(db database.Client) *Server {
return &Server{db: db}
func New(db geo.Reader) *Server {
return &Server{gr: db}
}
func ipFromRequest(headers []string, r *http.Request) (net.IP, error) {
@ -75,8 +75,8 @@ func (s *Server) newResponse(r *http.Request) (Response, error) {
return Response{}, err
}
ipDecimal := iputil.ToDecimal(ip)
country, _ := s.db.Country(ip)
city, _ := s.db.City(ip)
country, _ := s.gr.Country(ip)
city, _ := s.gr.City(ip)
var hostname string
if s.LookupAddr != nil {
hostname, _ = s.LookupAddr(ip)
@ -264,7 +264,7 @@ func (s *Server) Handler() http.Handler {
r.Route("GET", "/", s.CLIHandler).MatcherFunc(cliMatcher)
r.Route("GET", "/", s.CLIHandler).Header("Accept", textMediaType)
r.Route("GET", "/ip", s.CLIHandler)
if !s.db.IsEmpty() {
if !s.gr.IsEmpty() {
r.Route("GET", "/country", s.CLICountryHandler)
r.Route("GET", "/country-iso", s.CLICountryISOHandler)
r.Route("GET", "/city", s.CLICityHandler)

View File

@ -8,7 +8,7 @@ import (
"net/http/httptest"
"testing"
"github.com/mpolden/ipd/iputil/database"
"github.com/mpolden/ipd/iputil/geo"
)
func lookupAddr(net.IP) (string, error) { return "localhost", nil }
@ -16,15 +16,15 @@ func lookupPort(net.IP, uint64) error { return nil }
type testDb struct{}
func (t *testDb) Country(net.IP) (database.Country, error) {
return database.Country{Name: "Elbonia", ISO: "EB"}, nil
func (t *testDb) Country(net.IP) (geo.Country, error) {
return geo.Country{Name: "Elbonia", ISO: "EB"}, nil
}
func (t *testDb) City(net.IP) (string, error) { return "Bornyasherk", nil }
func (t *testDb) IsEmpty() bool { return false }
func testServer() *Server {
return &Server{db: &testDb{}, LookupAddr: lookupAddr, LookupPort: lookupPort}
return &Server{gr: &testDb{}, LookupAddr: lookupAddr, LookupPort: lookupPort}
}
func httpGet(url string, acceptMediaType string, userAgent string) (string, int, error) {
@ -87,7 +87,7 @@ func TestDisabledHandlers(t *testing.T) {
server := testServer()
server.LookupPort = nil
server.LookupAddr = nil
server.db, _ = database.New("", "")
server.db, _ = geo.New("", "")
s := httptest.NewServer(server.Handler())
var tests = []struct {

View File

@ -1,4 +1,4 @@
package database
package geo
import (
"net"
@ -6,7 +6,7 @@ import (
geoip2 "github.com/oschwald/geoip2-golang"
)
type Client interface {
type Reader interface {
Country(net.IP) (Country, error)
City(net.IP) (string, error)
IsEmpty() bool
@ -22,7 +22,7 @@ type geoip struct {
city *geoip2.Reader
}
func New(countryDB, cityDB string) (Client, error) {
func Open(countryDB, cityDB string) (Reader, error) {
var country, city *geoip2.Reader
if countryDB != "" {
r, err := geoip2.Open(countryDB)