gophonenumbers

package module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2021 License: MIT Imports: 15 Imported by: 3

README

GoPhoneNumbers

Build Status Go Report Card Docs License

This library provides phone number information functionality including ability to access number look up APIs. It includes a Go client and CLI app for the Numverify API, and Twilio API.

https://numverify.com/documentation

Installation

Install Command
SDK only $ go get github.com/grokify/gophonenumbers
CLI only $ go get github.com/grokify/gophonenumbers/apps/numverify
SDK and CLI $ go get github.com/grokify/gophonenumbers/...

Usage

CLI App
Options Long Short Example
.env File --env -e -e=/path/to/.env
Access Token --token -t -t=<myToken>
Validate Number --number -n -n=<number>
List Countries --countries -c -c
Example Commands
$ numverify -e=/path/to/.env -n=+16505550100
$ numverify -t=<myToken> -n=+16505550100
$ numverify -e=/path/to/.env -c
$ numverify -t=<myToken> -c
SDK
Validate Number
import(
	nv "github.com/grokify/gophonenumbers/numverify"
)

func main() {
	client := nv.NumverifyClient{AccessKey: "myAccessKey"}

	apiSuccessInfo, apiErrorInfo, resp, err := client.Validate(
		nv.NumverifyParams{Number: number})

	[...]
}
Get Countries
import(
	nv "github.com/grokify/gophonenumbers/numverify"
)

func main() {
	client := nv.NumverifyClient{AccessKey: "myAccessKey"}

	countries, apiErrorInfo, resp, err := client.Countries()

	[...]
}

Documentation

Index

Constants

View Source
const (
	CarrierATT     = "att.com"
	CarrierSprint  = "sprint.com"
	CarrierTMobile = "t-mobile.com"
	CarrierVerizon = "verizon.com"
)

Variables

This section is empty.

Functions

func E164Atoi added in v0.0.2

func E164Atoi(s string) (int, error)

func NumbersSetAreaCodesNANP

func NumbersSetAreaCodesNANP(numSet *NumbersSet) *histogram.Histogram

func NumbersSetNumbersE164

func NumbersSetNumbersE164(numSet *NumbersSet) *histogram.Histogram

func NumbersSetToTable

func NumbersSetToTable(numsSet *NumbersSet) table.Table

func ParseAreaCodeString

func ParseAreaCodeString(numberToParse, defaultRegion string) (string, error)

ParseAreaCode will attempt to extract an areacode from a phone number string.

Types

type Carrier

type Carrier struct {
	MobileCountryCode string `json:"mobileCountryCode,omitempty"`
	MobileNetworkCode string `json:"mobileNetworkCode,omitempty"`
	Name              string `json:"name,omitempty"`
	LineType          string `json:"lineType,omitempty"`
	ErrorCode         string `json:"errorCode,omitempty"`
}

func TwilioCarrierToCommon

func TwilioCarrierToCommon(c twilio.Carrier) Carrier

type Components

type Components struct {
	E164             string
	E164Uint         uint
	RegionCode       string
	CountryCode      uint
	NANPAreaCode     uint // NPA - Numbering plan area code
	NANPExchangeCode uint // NXX - Central office (exchange) code
	NANPLineNumber   uint // xxxx - Line number or subscriber number
}

func ParseE164

func ParseE164(e164 string) Components

type Direction

type Direction int
const (
	To Direction = iota
	From
)

type LineType

type LineType int
const (
	LineLocal LineType = iota
	LineMobile
	LineTollFree
)

type NumberInfo

type NumberInfo struct {
	NumberE164       string
	Components       Components
	Carrier          Carrier
	Lookups          []NumberLookup
	CarrierNamesEach []string
	LineTypesEach    []string
}

func NewNumberInfo

func NewNumberInfo() NumberInfo

func (*NumberInfo) Inflate

func (ni *NumberInfo) Inflate() error

func (*NumberInfo) InflateComponents

func (ni *NumberInfo) InflateComponents()

type NumberLookup

type NumberLookup struct {
	NumberE164      string
	Components      Components
	Carrier         Carrier
	LookupSource    Source
	LookupTime      time.Time
	SourceNumverify *numverify.ResponseSuccess
	SourceTwilio    *twilio.NumberInfo
}

func NewNumberLookupNumverify

func NewNumberLookupNumverify(src *numverify.Response) (NumberLookup, error)

func NewNumberLookupTwilio

func NewNumberLookupTwilio(src *twilio.NumberInfo) (NumberLookup, error)

func SortLookupsDesc

func SortLookupsDesc(lookups []NumberLookup) []NumberLookup

type NumbersSet

type NumbersSet struct {
	NumbersMap map[string]NumberInfo
}

func NewNumbersSet

func NewNumbersSet() NumbersSet

func ReadLookupsNumverify

func ReadLookupsNumverify(dir, rxPattern string, numsSet *NumbersSet) (*NumbersSet, error)

func ReadLookupsTwilio

func ReadLookupsTwilio(dir, rxPattern string, numsSet *NumbersSet) (*NumbersSet, error)

func (*NumbersSet) AddLookup

func (set *NumbersSet) AddLookup(lookup NumberLookup) error

func (*NumbersSet) AddNumber

func (set *NumbersSet) AddNumber(num NumberInfo) error

func (*NumbersSet) AreaCodes

func (set *NumbersSet) AreaCodes() *histogram.Histogram

func (*NumbersSet) Inflate

func (set *NumbersSet) Inflate()

type PhoneNumber

type PhoneNumber struct {
	Number *phonenumbers.PhoneNumber
}

func (*PhoneNumber) GetAreaCode

func (num *PhoneNumber) GetAreaCode() int

func (*PhoneNumber) GetAreaCodeString

func (num *PhoneNumber) GetAreaCodeString() string

func (*PhoneNumber) GetCountryCode

func (num *PhoneNumber) GetCountryCode() int32

func (*PhoneNumber) GetNumberE164

func (num *PhoneNumber) GetNumberE164() string

func (*PhoneNumber) GetNumberE164Uint

func (num *PhoneNumber) GetNumberE164Uint() uint

func (*PhoneNumber) GetRegionCode

func (num *PhoneNumber) GetRegionCode() string

func (*PhoneNumber) Meta

func (num *PhoneNumber) Meta() Components

type Source

type Source string
const (
	Ekata     Source = "ekata"
	Numverify Source = "numverify"
	Twilio    Source = "twilio"
)

type ToFromNumbersSet

type ToFromNumbersSet struct {
	To   NumbersSet
	From NumbersSet
}

func NewToFromNumbersSet

func NewToFromNumbersSet() ToFromNumbersSet

func (*ToFromNumbersSet) AddNumber

func (tfns *ToFromNumbersSet) AddNumber(ni NumberInfo, direction Direction) error

type ToFromNumbersSets

type ToFromNumbersSets struct {
	All          ToFromNumbersSet
	AreaCodesMap map[string]ToFromNumbersSet
}

func NewToFromNumbersSets

func NewToFromNumbersSets() ToFromNumbersSets

func (*ToFromNumbersSets) AddNumber

func (tfSets *ToFromNumbersSets) AddNumber(num NumberInfo, direction Direction, addAreaCode bool) error

func (*ToFromNumbersSets) Stats

func (tfSets *ToFromNumbersSets) Stats() ToFromNumbersSetsStats

type ToFromNumbersSetsStats

type ToFromNumbersSetsStats struct {
	ToAreaCodeCount   uint
	ToNumberCount     uint
	FromAreaCodeCount uint
	FromNumberCount   uint
}

Directories

Path Synopsis
apps

Jump to

Keyboard shortcuts

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