Documentation ¶
Index ¶
- Constants
- Variables
- func APIAbonementRequest(signalID string) *http.Request
- func APIRequest(KVKNumber, resource, target string) *http.Request
- func APIRequestNaam(KVKNumber string) *http.Request
- func Complete()
- func CompleteKVK(KVKNumber string) error
- func CreateSignalsStatus()
- func DBExec(sql string) *gorm.DB
- func DefaultSettings()
- func GetAllOldKVKNumbers() []string
- func MissingSignals() []string
- func NewProfile(KVKNumber string) error
- func SetupDB()
- func Start()
- func StatusLine() string
- func TakeActionOnSignals()
- func Update()
- func ValiddateComplete()
- type APICounter
- type Activiteit
- type Adres
- type BasicProfile
- func (p *BasicProfile) Fetch(KVKNumber string) error
- func (p *BasicProfile) Get(KVKNumber string) error
- func (p *BasicProfile) GetIfNotExists(KVKNumber string) (bool, error)
- func (p *BasicProfile) JSONR() (BasisprofielJSON, error)
- func (p *BasicProfile) TableName() string
- func (bp *BasicProfile) Update(KVKNumber string) error
- type BasisprofielJSON
- type Betrekking
- type Bezoekadres
- type BranchList
- type BranchListResponse
- type BranchProfile
- func (b *BranchProfile) ExtractKVK() (error, string)
- func (bp *BranchProfile) Get(branchNumber string) error
- func (bp *BranchProfile) GetIfNotExists(branchNumber string) (bool, error)
- func (b *BranchProfile) JSONR() (BranchProfileJSON, error)
- func (b *BranchProfile) TableName() string
- func (bp *BranchProfile) Update(BranchNumber string) error
- func (b *BranchProfile) UpdateKVK() (error, string)
- type BranchProfileJSON
- type CommercieleVestiging
- type ContentSignaal
- type Datum
- type Deponeringen
- type Eigenaar
- type EigenaarJSON
- type EmbeddedContainer
- type Fout
- type Functionarissen
- type GeoData
- type GewijzigdeEigenaar
- type GewijzigdeGegevens
- type GewijzigdeVestiging
- type Handelsnaam
- type JSignaal
- type KVKOperations
- type Link
- type Links
- type MaOnderneming
- type MaterieleRegistratie
- type Mutation
- type MutationList
- type NaamVestiging
- type NaamgevingJSON
- type NameProfile
- func (n *NameProfile) Fetch(KVKNumber string) error
- func (n *NameProfile) Get(KVKNumber string) error
- func (n *NameProfile) GetIfNotExists(KVKNumber string) (bool, error)
- func (n *NameProfile) JSONR() (NaamgevingJSON, error)
- func (n *NameProfile) TableName() string
- func (n *NameProfile) Update(KVKNumber string) error
- type NietCommercieleVestiging
- type Owner
- type Postcode
- type Rechtspersoon
- type SBIActiviteit
- type Signal
- func (s *Signal) ActOnSignal(st *SignalStatus)
- func (s Signal) BranchNumbers() []string
- func (s *Signal) ChangesStatus() string
- func (s Signal) FetchSignals() error
- func (s *Signal) Get(ID string) error
- func (s Signal) KVKNumber() string
- func (s Signal) NeedsAction() (bool, []string)
- func (s Signal) Status() (SignalStatus, error)
- func (s *Signal) TableName() string
- type SignalCounts
- type SignalStatus
- type TimePeriod
- type UitgeoefendIn
- type UnknownKVKresponseError
- type Vestiging
- type Vestigingen
Constants ¶
Variables ¶
var DB *gorm.DB
Global database object used
Functions ¶
func APIAbonementRequest ¶
APIAbonementRequest create valid abbonementen request for kvk API. NO Test API available works only with valid ABONEMENTID
func APIRequest ¶
func APIRequestNaam ¶
func CompleteKVK ¶
Given a KVKNumber we want to complete all needed information on profile
func CreateSignalsStatus ¶
func CreateSignalsStatus()
Check which signals needs an action to collect missing data from kvk API. SignalStatus records are created to keep track of what needs to be still picked up from KVK.
func DefaultSettings ¶
func DefaultSettings()
func GetAllOldKVKNumbers ¶
func GetAllOldKVKNumbers() []string
func MissingSignals ¶
func MissingSignals() []string
Look for missing signals id's in mutations. so we know which signals to fetch from KVK Registration.
func NewProfile ¶
A new profile has arrived in KVK get all related content
func TakeActionOnSignals ¶
func TakeActionOnSignals()
TakeActionOnSignals all signals with a non handeled status should be processed here.
Types ¶
type APICounter ¶
type APICounter struct { MutationCount int64 NameCount int64 BranchProfileCount int64 APICount int64 OwnerCount int64 BranchListCount int64 BasicProfileCount int64 SignalCount int64 }
var APICount APICounter
type Activiteit ¶
type Adres ¶
type Adres struct { Type *string `json:"type,omitempty"` IndAfgeschermd *string `json:"indAfgeschermd,omitempty"` VolledigAdres *string `json:"volledigAdres,omitempty"` Straatnaam string `json:"straatnaam,omitempty"` Huisnummer int `json:"huisnummer,omitempty"` Huisletter *string `json:"huisletter,omitempty"` HuisnummerToevoeging *string `json:"huisnummerToevoeging,omitempty"` ToevoegingAdres *string `json:"toevoegingAdres,omitempty"` Postcode string `json:"postcode,omitempty"` Postbusnummer *int32 `json:"postbusnummer,omitempty"` Plaats *string `json:"plaats,omitempty"` StraatHuisnummer *string `json:"straatHuisnummer,omitempty"` PostcodeWoonplaats *string `json:"postcodeWoonplaats,omitempty"` Regio *string `json:"regio,omitempty"` Land *string `json:"land,omitempty"` GeoData *GeoData `json:"geoData,omitempty"` }
type BasicProfile ¶
type BasicProfile struct { gorm.Model KVKNumber string `gorm:"index"` Publication time.Time JSON datatypes.JSON }
func (*BasicProfile) Fetch ¶
func (p *BasicProfile) Fetch(KVKNumber string) error
func (*BasicProfile) Get ¶
func (p *BasicProfile) Get(KVKNumber string) error
Get KVK profile from KVK api. store raw json result in API
func (*BasicProfile) GetIfNotExists ¶
func (p *BasicProfile) GetIfNotExists(KVKNumber string) (bool, error)
GetBranchProfile if not exists. Only do KVK API request if we do not have record. return true if an API request has been done.
func (*BasicProfile) JSONR ¶
func (p *BasicProfile) JSONR() (BasisprofielJSON, error)
func (*BasicProfile) TableName ¶
func (p *BasicProfile) TableName() string
func (*BasicProfile) Update ¶
func (bp *BasicProfile) Update(KVKNumber string) error
Update and replace old record if present of BasicProfile{}
type BasisprofielJSON ¶
type BasisprofielJSON struct { KvkNummer *string `json:"kvkNummer,omitempty"` IndNonMailing *string `json:"indNonMailing,omitempty"` Naam *string `json:"naam,omitempty"` FormeleRegistratiedatum *string `json:"formeleRegistratiedatum,omitempty"` MaterieleRegistratie *MaterieleRegistratie `json:"materieleRegistratie,omitempty"` TotaalWerkzamePersonen *int32 `json:"totaalWerkzamePersonen,omitempty"` StatutaireNaam *string `json:"statutaireNaam,omitempty"` Handelsnamen []*Handelsnaam `json:"handelsnamen,omitempty"` SbiActiviteiten []*SBIActiviteit `json:"sbiActiviteiten,omitempty"` Links []*Link `json:"links,omitempty"` Embedded *EmbeddedContainer `json:"_embedded,omitempty"` }
type Betrekking ¶
type Betrekking struct { KvkNummer string `json:"kvkNummer"` NonMailing bool `json:"nonMailing"` HeeftAlsEigenaar Eigenaar `json:"heeftAlsEigenaar"` WordtUitgeoefendIn []UitgeoefendIn `json:"wordtUitgeoefendIn"` TotaalWerkzamePersonen int `json:"totaalWerkzamePersonen"` }
type Bezoekadres ¶
type BranchList ¶
BranchList (aka Vestigingen)
func (*BranchList) Get ¶
func (bl *BranchList) Get(KVKNumber string) error
func (*BranchList) GetBranchProfiles ¶
func (bl *BranchList) GetBranchProfiles() error
Get BranchProfile if not present in database make API call.
func (*BranchList) GetIfNotExists ¶
func (bl *BranchList) GetIfNotExists(KVKNumber string) (bool, error)
func (*BranchList) TableName ¶
func (bl *BranchList) TableName() string
func (*BranchList) Update ¶
func (bl *BranchList) Update(KVKNumber string) error
type BranchListResponse ¶
type BranchListResponse struct { Rsin string `json:"rsin,omitempty"` Links *[]Link `json:"links,omitempty"` KvkNummer string `json:"kvkNummer,omitempty"` Vestigingen *[]Vestiging `json:"vestigingen,omitempty"` TotaalAantalVestigingen int `json:"totaalAantalVestigingen,omitempty"` AantalCommercieleVestigingen int `json:"aantalCommercieleVestigingen,omitempty"` AantalNietCommercieleVestigingen int `json:"aantalNietCommercieleVestigingen,omitempty"` Fout *[]Fout `json:"fout,omitempty"` }
func NewBranchListResponse ¶
func NewBranchListResponse() BranchListResponse
type BranchProfile ¶
type BranchProfile struct { gorm.Model KVKNumber string `gorm:"index"` BranchNumber string `gorm:"index"` JSON datatypes.JSON }
func (*BranchProfile) ExtractKVK ¶
func (b *BranchProfile) ExtractKVK() (error, string)
Extract KVK from JSON.
func (*BranchProfile) Get ¶
func (bp *BranchProfile) Get(branchNumber string) error
func (*BranchProfile) GetIfNotExists ¶
func (bp *BranchProfile) GetIfNotExists(branchNumber string) (bool, error)
GetBranchProfile if not exists. Only do KVK API request if we do not have record. return true if an API request has been done.
func (*BranchProfile) JSONR ¶
func (b *BranchProfile) JSONR() (BranchProfileJSON, error)
func (*BranchProfile) TableName ¶
func (b *BranchProfile) TableName() string
func (*BranchProfile) Update ¶
func (bp *BranchProfile) Update(BranchNumber string) error
func (*BranchProfile) UpdateKVK ¶
func (b *BranchProfile) UpdateKVK() (error, string)
Update KVKNumber column in database if not filled by extracting it from JSON.
type BranchProfileJSON ¶
type BranchProfileJSON struct { Vestigingsnummer string `json:"vestigingsnummer"` KvkNummer string `json:"kvkNummer"` Rsin *string `json:"rsin,omitempty"` IndNonMailing *string `json:"indNonMailing,omitempty"` FormeleRegistratiedatum *string `json:"formeleRegistratiedatum,omitempty"` MaterieleRegistratie *MaterieleRegistratie `json:"materieleRegistratie,omitempty"` StatutaireNaam *string `json:"statutaireNaam,omitempty"` EersteHandelsnaam *string `json:"eersteHandelsnaam,omitempty"` IndHoofdvestiging *string `json:"indHoofdvestiging,omitempty"` IndCommercieleVestiging *string `json:"indCommercieleVestiging,omitempty"` VoltijdWerkzamePersonen *int `json:"voltijdWerkzamePersonen,omitempty"` TotaalWerkzamePersonen *int `json:"totaalWerkzamePersonen,omitempty"` DeeltijdWerkzamePersonen *int `json:"deeltijdWerkzamePersonen,omitempty"` Handelsnamen []*Handelsnaam `json:"handelsnamen,omitempty"` Adressen []*Adres `json:"adressen,omitempty"` Websites []string `json:"websites,omitempty"` SbiActiviteiten []*SBIActiviteit `json:"sbiActiviteiten,omitempty"` Links *Links `json:"_links,omitempty"` Fout []*Fout `json:"fout,omitempty"` }
func (*BranchProfileJSON) Name ¶
func (bpj *BranchProfileJSON) Name() string
type CommercieleVestiging ¶
type CommercieleVestiging struct { Vestigingsnummer string `json:"vestigingsnummer"` EersteHandelsnaam *string `json:"eersteHandelsnaam,omitempty"` Handelsnamen []*Handelsnaam `json:"handelsnamen,omitempty"` Links *Links `json:"_links,omitempty"` }
CommercieleVestiging struct
type ContentSignaal ¶
type ContentSignaal struct { BerichtID string `json:"berichtId"` SignaalType string `json:"signaalType"` RegistratieID string `json:"registratieId"` HeeftBetrekkingOp Betrekking `json:"heeftBetrekkingOp"` IndicatieCorrectie bool `json:"indicatieCorrectie"` RegistratieTijdstip string `json:"registratieTijdstip"` HeeftGewijzigdeGegevens GewijzigdeGegevens `json:"heeftGewijzigdeGegevens"` }
type Deponeringen ¶
type Deponeringen struct {
// ignored for now
GewijzigdeDeponeringen []interface{} `json:"gewijzigdeDeponeringen"`
}
type Eigenaar ¶
type Eigenaar struct {
Rechtspersoon Rechtspersoon `json:"rechtspersoon"`
}
type EigenaarJSON ¶
type EigenaarJSON struct { Rsin *string `json:"rsin,omitempty"` Rechtsvorm *string `json:"rechtsvorm,omitempty"` UitgebreideRechtsvorm *string `json:"uitgebreideRechtsvorm,omitempty"` Adressen []*Adres `json:"adressen,omitempty"` Websites []*string `json:"websites,omitempty"` Links []*Link `json:"links,omitempty"` }
json response from /v1/basisprofielen/{kvkNummer}/eigenaar:
type EmbeddedContainer ¶
type EmbeddedContainer struct { Hoofdvestiging *BranchProfileJSON `json:"hoofdvestiging,omitempty"` Eigenaar *EigenaarJSON `json:"eigenaar,omitempty"` }
type Functionarissen ¶
type Functionarissen struct { Gemachtigde bool `json:"gemachtigde"` Aansprakelijke bool `json:"aansprakelijke"` Bestuursfunctie bool `json:"bestuursfunctie"` OverigeFunctionaris bool `json:"overigeFunctionaris"` PubliekRechtelijkeFunctionaris bool `json:"publiekRechtelijkeFunctionaris"` FunctionarisBijzondereRechtstoestand bool `json:"functionarisBijzondereRechtstoestand"` }
type GeoData ¶
type GeoData struct { AddresseerbaarObjectId *string `json:"addresseerbaarObjectId,omitempty"` NummerAanduidingId *string `json:"nummerAanduidingId,omitempty"` GpsLatitude *float64 `json:"gpsLatitude,omitempty"` GpsLongitude *float64 `json:"gpsLongitude,omitempty"` RijksdriehoekX *float64 `json:"rijksdriehoekX,omitempty"` RijksdriehoekY *float64 `json:"rijksdriehoekY,omitempty"` RijksdriehoekZ *float64 `json:"rijksdriehoekZ,omitempty"` }
type GewijzigdeEigenaar ¶
type GewijzigdeEigenaar struct { Eenmanszaak bool `json:"eenmanszaak"` Rechtspersoon bool `json:"rechtspersoon"` FusieEnSplitsing bool `json:"fusieEnSplitsing"` Samenwerkingsverband bool `json:"samenwerkingsverband"` OntbindingEnLiquidatie bool `json:"ontbindingEnLiquidatie"` Bijzondererechtstoestand bool `json:"bijzondererechtstoestand"` BuitenlandseVennootschap bool `json:"buitenlandseVennootschap"` RechtspersoonActiviteiten bool `json:"rechtspersoonActiviteiten"` RechtspersoonInOprichting bool `json:"rechtspersoonInOprichting"` BeperkingInRechtshandeling bool `json:"beperkingInRechtshandeling"` RechtspersoonAdresgegevens bool `json:"rechtspersoonAdresgegevens"` EenmanszaakMetMeerdereEigenaren bool `json:"eenmanszaakMetMeerdereEigenaren"` }
func (GewijzigdeEigenaar) Changed ¶
func (ge GewijzigdeEigenaar) Changed() bool
type GewijzigdeGegevens ¶
type GewijzigdeGegevens struct { Eigenaar GewijzigdeEigenaar `json:"eigenaar"` Vestigingen Vestigingen `json:"vestigingen"` Deponeringen Deponeringen `json:"deponeringen"` MaOnderneming MaOnderneming `json:"maOnderneming"` Functionarissen Functionarissen `json:"functionarissen"` }
type GewijzigdeVestiging ¶
type Handelsnaam ¶
type JSignaal ¶
type JSignaal struct {
Signaal ContentSignaal `json:"signaal"`
}
func NewJSignaal ¶
func NewJSignaal() JSignaal
New function to initialize and return an empty JSignaal object
func (*JSignaal) BranchNumbers ¶
Fetch all branchnumbers on signal
func (JSignaal) GormDataType ¶
func (*JSignaal) NeedsAction ¶
NeedsAction decide if interesting fields are changed and fetch is needed.
type KVKOperations ¶
type Link ¶
type Link struct { Rel *string `json:"rel,omitempty"` Href string `json:"href"` Hreflang *string `json:"hreflang,omitempty"` Media *string `json:"media,omitempty"` Title *string `json:"title,omitempty"` Type *string `json:"type,omitempty"` Deprecation *string `json:"deprecation,omitempty"` Profile *string `json:"profile,omitempty"` Name *string `json:"name,omitempty"` }
type Links ¶
type Links struct { Self *Link `json:"self"` Basisprofiel *Link `json:"basisprofiel"` Vestigingsprofiel *Link `json:"vestigingsprofiel,omitempty"` }
Links struct for holding multiple links
type MaOnderneming ¶
type MaOnderneming struct {
Algemeen bool `json:"algemeen"`
}
type MaterieleRegistratie ¶
type Mutation ¶
type Mutation struct { gorm.Model KVKNumber string `gorm:"index"` SignalID string `gorm:"index,unique"` Timestamp time.Time `gorm:"autoUpdateTime:false"` }
Mutation is an indication of a change in KVK numbers. The details of the change can be picked up from the Signal Endpoint.
func (Mutation) Fetch ¶
Fetch mutations we do not have yet. We look a the Newest Mutation and fetch newer ones.
func (*Mutation) FetchAllPages ¶
given a request for mutations, fetch all pages.
func (*Mutation) FetchFromTo ¶
func (m *Mutation) FetchFromTo(tp TimePeriod) error
type MutationList ¶
type NaamVestiging ¶
type NaamVestiging struct { CommercieleVestiging *CommercieleVestiging NietCommercieleVestiging *NietCommercieleVestiging }
Vestiging could be either CommercieleVestiging or NietCommercieleVestiging
type NaamgevingJSON ¶
type NaamgevingJSON struct { KvkNummer string `json:"kvkNummer"` // Required field Rsin *string `json:"rsin,omitempty"` StatutaireNaam *string `json:"statutaireNaam,omitempty"` Naam *string `json:"naam,omitempty"` OokGenoemd *string `json:"ookGenoemd,omitempty"` Startdatum *Datum `json:"startdatum,omitempty"` Einddatum *Datum `json:"einddatum,omitempty"` Vestigingen []*NaamVestiging `json:"vestigingen,omitempty"` Links *Links `json:"_links,omitempty"` }
type NameProfile ¶
type NameProfile struct { gorm.Model Name string KVKNumber string `gorm:"index"` JSON datatypes.JSON }
func (*NameProfile) Fetch ¶
func (n *NameProfile) Fetch(KVKNumber string) error
func (*NameProfile) Get ¶
func (n *NameProfile) Get(KVKNumber string) error
Get all known names related to kvk number
func (*NameProfile) GetIfNotExists ¶
func (n *NameProfile) GetIfNotExists(KVKNumber string) (bool, error)
Only do api call if not exists in database
func (*NameProfile) JSONR ¶
func (n *NameProfile) JSONR() (NaamgevingJSON, error)
func (*NameProfile) TableName ¶
func (n *NameProfile) TableName() string
func (*NameProfile) Update ¶
func (n *NameProfile) Update(KVKNumber string) error
type NietCommercieleVestiging ¶
type NietCommercieleVestiging struct { Vestigingsnummer string `json:"vestigingsnummer"` Naam *string `json:"naam,omitempty"` OokGenoemd *string `json:"ookGenoemd,omitempty"` Links *Links `json:"_links,omitempty"` }
NietCommercieleVestiging struct
type Owner ¶
func (*Owner) GetIfNotExists ¶
Get Owner only if not alreay present
func (*Owner) JSONR ¶
func (o *Owner) JSONR() (EigenaarJSON, error)
type Rechtspersoon ¶
type Rechtspersoon struct { Rsin string `json:"rsin"` Bezoekadres Bezoekadres `json:"bezoekadres"` Activiteiten []Activiteit `json:"activiteiten"` PersoonRechtsvorm string `json:"persoonRechtsvorm"` }
type SBIActiviteit ¶
type Signal ¶
type Signal struct { gorm.Model S_ID string `gorm:"index,unique"` // SignalID string `gorm:"index,unique"` Publication time.Time JSON datatypes.JSON // contains filtered or unexported fields }
Signal containing indication of changed fields in KVK
func (*Signal) ActOnSignal ¶
func (s *Signal) ActOnSignal(st *SignalStatus)
Given a signals and signals Status update the KVK profile. - New - Eigenaar / Owner - Branches - Vestigingen
func (Signal) BranchNumbers ¶
func (*Signal) ChangesStatus ¶
func (Signal) FetchSignals ¶
func (Signal) NeedsAction ¶
unmarshal the signal.json to check if actions are needed.
func (Signal) Status ¶
func (s Signal) Status() (SignalStatus, error)
fetch signals we still need to process and complete information on. creates a SignalStatus for each signal object.
type SignalCounts ¶
type SignalStatus ¶
type SignalStatus struct { gorm.Model S_ID string `gorm:"index,unique"` Handeled bool Action string // with what logic was decision for status taken? DecisonVersion int Status int }
Keep track of what we did with a signal. Did with handle it? or ignore it? should we still handle it?
func (*SignalStatus) TableName ¶
func (st *SignalStatus) TableName() string
type TimePeriod ¶
TimePeriod represents a 24-hour period
type UitgeoefendIn ¶
type UitgeoefendIn struct { Bezoekadres Bezoekadres `json:"bezoekadres"` Activiteiten []Activiteit `json:"activiteiten"` IsHoofdvestiging bool `json:"isHoofdvestiging"` Vestigingsnummer string `json:"vestigingsnummer"` TotaalWerkzamePersonen int `json:"totaalWerkzamePersonen"` }
type UnknownKVKresponseError ¶
type UnknownKVKresponseError struct{}
func (*UnknownKVKresponseError) Error ¶
func (u *UnknownKVKresponseError) Error()
type Vestiging ¶
type Vestiging struct { Links []Link `json:"links"` VolledigAdres string `json:"volledigAdres"` Vestigingsnummer string `json:"vestigingsnummer"` EersteHandelsnaam string `json:"eersteHandelsnaam"` IndHoofdvestiging string `json:"indHoofdvestiging"` IndAdresAfgeschermd string `json:"indAdresAfgeschermd"` IndCommercieleVestiging string `json:"indCommercieleVestiging"` }
type Vestigingen ¶
type Vestigingen struct {
Gewijzigdevestigingen []GewijzigdeVestiging `json:"gewijzigdevestigingen"`
}
func (Vestigingen) Changed ¶
func (v Vestigingen) Changed() bool