gohoa

package module
v0.0.0-...-7eb0d31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

README

gohoa

Reads HOA directory data associationvoice.com format, allows for use within your custom go-based software

Documentation

Index

Constants

View Source
const (
	DEFAULT_ADDR_SEG_LEN = 2
	SIM_THRESHOLD        = 0.7
)
View Source
const (
	TEXT_TRIE = iota
	NUM_TRIE
)

Variables

This section is empty.

Functions

func CreateMongoIDForDiretory

func CreateMongoIDForDiretory(m *Member) (string, string, error)

func GetShortIDFromStreetName

func GetShortIDFromStreetName(streetName string) string

func GetStreetMap

func GetStreetMap() map[string]StreetMapping

func LoadStreetMappingsJson

func LoadStreetMappingsJson()

Types

type AddressLineParser

type AddressLineParser interface {
	ParseStreetSegments(streetName string, tokCount int) []string
}

A simple implmentation of this address parser will work with "your" HOA address

it is not feasible to provide an all-encompassing addresss pareser, the
logistics of doing so are documented here: https://www.reddit.com/r/golang/comments/i2jo1o/comment/g05f9rq/?utm_source=share&utm_medium=web2x&context=3

type AddressParseError

type AddressParseError struct {
	StreetNumber int
	StreetName   string
	Err          error
}

func (*AddressParseError) Error

func (e *AddressParseError) Error() string

type AllMembers

type AllMembers struct {
	Members []Member
}

func NewAllMembers

func NewAllMembers() *AllMembers

func (*AllMembers) DeDupeMembers

func (am *AllMembers) DeDupeMembers()

func (*AllMembers) PopulateFromJsonFile

func (am *AllMembers) PopulateFromJsonFile(filename string)

type AllOrders

type AllOrders struct {
	// contains filtered or unexported fields
}

func NewAllOrders

func NewAllOrders() *AllOrders

func (*AllOrders) LoadOrders

func (ao *AllOrders) LoadOrders(filename string)

func (*AllOrders) PrintOrders

func (ao *AllOrders) PrintOrders()

func (*AllOrders) ValidateNumbers

func (ao *AllOrders) ValidateNumbers() error

type Analysis

type Analysis struct {
	// contains filtered or unexported fields
}

func NewAnalysis

func NewAnalysis() *Analysis

func (*Analysis) CrossCheckOrders

func (a *Analysis) CrossCheckOrders(ao *AllOrders) ([]OrderMatch, []OrderMiss, error)

func (*Analysis) FetchAllMembersOnStreet

func (a *Analysis) FetchAllMembersOnStreet(streetName string) []*Member

func (*Analysis) FetchInhabitants

func (a *Analysis) FetchInhabitants(streetNum int, streetName string) []Contact

func (*Analysis) FetchSingle

func (a *Analysis) FetchSingle(streetNum int, streetName string) (*Member, bool)

func (*Analysis) LoadAllMembers

func (a *Analysis) LoadAllMembers(allMembers *AllMembers)

func (*Analysis) UniqeStreetNames

func (a *Analysis) UniqeStreetNames() []string

type ByStreetNumber

type ByStreetNumber []OrderMatch

func (ByStreetNumber) Len

func (a ByStreetNumber) Len() int

SORT for the order matches

func (ByStreetNumber) Less

func (a ByStreetNumber) Less(i, j int) bool

func (ByStreetNumber) Swap

func (a ByStreetNumber) Swap(i, j int)

type Contact

type Contact struct {
	RoleName  string `json:"role_name"`
	FirstName string `json:"fname"`
	LastName  string `json:"lname"`
}

func MatchFuzzyNameFromOrder

func MatchFuzzyNameFromOrder(m *Member, o Order) (Contact, bool)

type DBService

type DBService struct {
	// contains filtered or unexported fields
}

type DirLoaderService

type DirLoaderService struct {
	DBService
}

func NewDirLoader

func NewDirLoader() *DirLoaderService

func (*DirLoaderService) BulkInsert

func (s *DirLoaderService) BulkInsert(members []Member) error

func (*DirLoaderService) PopulateMongoFromJSON

func (s *DirLoaderService) PopulateMongoFromJSON()

func (*DirLoaderService) Revalidate

func (s *DirLoaderService) Revalidate(members []Member) error

func (*DirLoaderService) RevalidateMongoFromJSON

func (s *DirLoaderService) RevalidateMongoFromJSON()

type DirQueryService

type DirQueryService struct {
	DBService
}

func NewDirQueryService

func NewDirQueryService() *DirQueryService

func (*DirQueryService) FindAllMembers

func (s *DirQueryService) FindAllMembers(members *[]Member) error

func (*DirQueryService) FindCountByStreetName

func (s *DirQueryService) FindCountByStreetName()

func (*DirQueryService) FindMemberById

func (s *DirQueryService) FindMemberById(memberId int) (Member, error)

func (*DirQueryService) FindMembersByStreetNumber

func (s *DirQueryService) FindMembersByStreetNumber(number string) ([]PropertyAddress, error)

type MainConfig

type MainConfig struct {
	MongoDBUrl           string `config:"MONGODB_URI"`
	MongoDBName          string `config:"MONGODB_NAME"`
	SlimMembersJson      string `config:"SLIM_MEMBERS_JSON"`
	SlimMembersJsonReval string `config:"SLIM_MEMBERS_JSON_REVAL"`

	StreetsJson string `config:"STREETS_JSON"`
}

func GetConfig

func GetConfig() MainConfig

type Member

type Member struct {
	ID         string          `json:"_id,omitempty" bson:"_id"`
	MemberId   int32           `json:"member_id,string"`
	MemberName string          `json:"member_name"`
	OrderId    int32           `json:"order_id,string"`
	PAddress   PropertyAddress `json:"prop_address"`
	Contacts   []Contact       `json:"contact"`
}

type MemberDB

type MemberDB interface {
	Fetch(key Mkey) (*Member, bool)
	Add(key Mkey, member *Member)
	AddConvience(member *Member)
	Size() int
	AllMembers() []Member
}

func NewMemberDB

func NewMemberDB() MemberDB

type MemberLookup

type MemberLookup struct {
	// contains filtered or unexported fields
}

func NewMemberLookup

func NewMemberLookup() *MemberLookup

func (*MemberLookup) FindMembersByStreetNumber

func (ml *MemberLookup) FindMembersByStreetNumber(number string) ([]PropertyAddress, error)

func (*MemberLookup) SuggestNumber

func (ml *MemberLookup) SuggestNumber(prefix string) []string

func (*MemberLookup) SuggestStreetName

func (ml *MemberLookup) SuggestStreetName(prefix string) []StreetMapping

type Mkey

type Mkey struct {
	// contains filtered or unexported fields
}

Data mapping for searching addresses in-memory *

func MakeKey

func MakeKey(member *Member) Mkey

func MakeKeyV

func MakeKeyV(street string, number int) Mkey

func (Mkey) String

func (mk Mkey) String() string

type Node

type Node struct {
	Children []*Node
	// contains filtered or unexported fields
}

func NewNode

func NewNode(tType int) *Node

type Order

type Order struct {
	Name          string `csv:"Name"`
	Email         string `csv:"Email"`
	StreetName    string `csv:"Street Name"`
	StreetNumber  int    `csv:"Street Number"`
	StreetNumberV int    `csv:"Street Number (verifiy)"`
}

Order types

type OrderMatch

type OrderMatch struct {
	NeighborName     string
	StreetNumber     int
	StreetName       string
	DiretoryContacts []Contact
	MatchedContact   Contact
}

type OrderMiss

type OrderMiss Order

type PropertyAddress

type PropertyAddress struct {
	AddressID       int    `json:"address_id,string"`
	Addr1           string `json:"addr1"`
	StreetName      string `json:"StreetName"`
	Number          int    `json:"Number"`
	StreetNameShort string `json:"StreetNameShort"`
	StreetNameClean string `json:"StreetNameClean"`
}

type StreetMapping

type StreetMapping struct {
	StreetName string   `json:"name"`
	FullName   string   `json:"fullname"`
	ShortID    string   `json:"code"`
	TrieNames  []string `json:"trienames"`
}

func GetAllStreetMappings

func GetAllStreetMappings() []StreetMapping

func GetStreetMappingFromShortID

func GetStreetMappingFromShortID(shortId string) StreetMapping

func GetStreetMappingFromTrieName

func GetStreetMappingFromTrieName(trieName string) StreetMapping

type Trie

type Trie struct {
	// contains filtered or unexported fields
}

func InitTrie

func InitTrie(tType int) *Trie

func (*Trie) Insert

func (t *Trie) Insert(key string)

func (*Trie) Search

func (t *Trie) Search(key string) bool

func (*Trie) Suggestions

func (t *Trie) Suggestions(key string) []string

Directories

Path Synopsis
cmd
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL