pindxru

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

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

Go to latest
Published: Jul 26, 2023 License: MIT Imports: 13 Imported by: 0

README

PIndxru

Build Status Go Report Card

Библиотека для получения обновлений почтовых индексов России из «Эталонного справочника почтовых индексов объектов почтовой связи»

Содержание

Начало работы

go get github.com/NovikovRoman/pindxru

Примеры использования

В процессе.

Тесты

go test -v -race

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Regions = regions{
	{Name: "МОСКВА", Code: 77},
	{Name: "МОСКОВСКАЯ ОБЛАСТЬ", Code: 50},
	{Name: "АДЫГЕЯ РЕСПУБЛИКА", Code: 1},
	{Name: "АЛТАЙ РЕСПУБЛИКА", Code: 4},
	{Name: "АЛТАЙСКИЙ КРАЙ", Code: 22},
	{Name: "АМУРСКАЯ ОБЛАСТЬ", Code: 28},
	{Name: "АРХАНГЕЛЬСКАЯ ОБЛАСТЬ", Code: 29},
	{Name: "АСТРАХАНСКАЯ ОБЛАСТЬ", Code: 30},
	{Name: "БАШКОРТОСТАН РЕСПУБЛИКА", Code: 2},
	{Name: "БЕЛГОРОДСКАЯ ОБЛАСТЬ", Code: 31},
	{Name: "БРЯНСКАЯ ОБЛАСТЬ", Code: 32},
	{Name: "БУРЯТИЯ РЕСПУБЛИКА", Code: 3},
	{Name: "ВЛАДИМИРСКАЯ ОБЛАСТЬ", Code: 33},
	{Name: "ВОЛГОГРАДСКАЯ ОБЛАСТЬ", Code: 34},
	{Name: "ВОЛОГОДСКАЯ ОБЛАСТЬ", Code: 35},
	{Name: "ВОРОНЕЖСКАЯ ОБЛАСТЬ", Code: 36},
	{Name: "ДАГЕСТАН РЕСПУБЛИКА", Code: 5},
	{Name: "ЗАБАЙКАЛЬСКИЙ КРАЙ", Code: 75},
	{Name: "ИВАНОВСКАЯ ОБЛАСТЬ", Code: 37},
	{Name: "ИНГУШЕТИЯ РЕСПУБЛИКА", Code: 6},
	{Name: "ИРКУТСКАЯ ОБЛАСТЬ", Code: 38},
	{Name: "КАБАРДИНО-БАЛКАРСКАЯ РЕСПУБЛИКА", Code: 7},
	{Name: "КАЛИНИНГРАДСКАЯ ОБЛАСТЬ", Code: 39},
	{Name: "КАЛМЫКИЯ РЕСПУБЛИКА", Code: 8},
	{Name: "КАЛУЖСКАЯ ОБЛАСТЬ", Code: 40},
	{Name: "КАМЧАТСКИЙ КРАЙ", Code: 41},
	{Name: "КАРАЧАЕВО-ЧЕРКЕССКАЯ РЕСПУБЛИКА", Code: 9},
	{Name: "КАРЕЛИЯ РЕСПУБЛИКА", Code: 10},
	{Name: "КЕМЕРОВСКАЯ ОБЛАСТЬ", Code: 42},
	{Name: "КИРОВСКАЯ ОБЛАСТЬ", Code: 43},
	{Name: "КОМИ РЕСПУБЛИКА", Code: 11},
	{Name: "КОСТРОМСКАЯ ОБЛАСТЬ", Code: 44},
	{Name: "КРАСНОДАРСКИЙ КРАЙ", Code: 23},
	{Name: "КРАСНОЯРСКИЙ КРАЙ", Code: 24},
	{Name: "КРЫМ РЕСПУБЛИКА", Code: 82},
	{Name: "КУРГАНСКАЯ ОБЛАСТЬ", Code: 45},
	{Name: "КУРСКАЯ ОБЛАСТЬ", Code: 46},
	{Name: "ЛЕНИНГРАДСКАЯ ОБЛАСТЬ", Code: 47},
	{Name: "ЛИПЕЦКАЯ ОБЛАСТЬ", Code: 48},
	{Name: "МАГАДАНСКАЯ ОБЛАСТЬ", Code: 49},
	{Name: "МАРИЙ ЭЛ РЕСПУБЛИКА", Code: 12},
	{Name: "МОРДОВИЯ РЕСПУБЛИКА", Code: 13},
	{Name: "МУРМАНСКАЯ ОБЛАСТЬ", Code: 51},
	{Name: "НИЖЕГОРОДСКАЯ ОБЛАСТЬ", Code: 52},
	{Name: "НОВГОРОДСКАЯ ОБЛАСТЬ", Code: 53},
	{Name: "НОВОСИБИРСКАЯ ОБЛАСТЬ", Code: 54},
	{Name: "ОМСКАЯ ОБЛАСТЬ", Code: 55},
	{Name: "ОРЕНБУРГСКАЯ ОБЛАСТЬ", Code: 56},
	{Name: "ОРЛОВСКАЯ ОБЛАСТЬ", Code: 57},
	{Name: "ПЕНЗЕНСКАЯ ОБЛАСТЬ", Code: 58},
	{Name: "ПЕРМСКИЙ КРАЙ", Code: 59},
	{Name: "ПРИМОРСКИЙ КРАЙ", Code: 25},
	{Name: "ПСКОВСКАЯ ОБЛАСТЬ", Code: 60},
	{Name: "РОСТОВСКАЯ ОБЛАСТЬ", Code: 61},
	{Name: "РЯЗАНСКАЯ ОБЛАСТЬ", Code: 62},
	{Name: "САМАРСКАЯ ОБЛАСТЬ", Code: 63},
	{Name: "САНКТ-ПЕТЕРБУРГ", Code: 78},
	{Name: "САРАТОВСКАЯ ОБЛАСТЬ", Code: 64},
	{Name: "САХА (ЯКУТИЯ) РЕСПУБЛИКА", Code: 14},
	{Name: "САХАЛИНСКАЯ ОБЛАСТЬ", Code: 65},
	{Name: "СВЕРДЛОВСКАЯ ОБЛАСТЬ", Code: 66},
	{Name: "СЕВАСТОПОЛЬ", Code: 92},
	{Name: "СЕВЕРНАЯ ОСЕТИЯ - АЛАНИЯ РЕСПУБЛИКА", Code: 15},
	{Name: "СМОЛЕНСКАЯ ОБЛАСТЬ", Code: 67},
	{Name: "СТАВРОПОЛЬСКИЙ КРАЙ", Code: 26},
	{Name: "ТАМБОВСКАЯ ОБЛАСТЬ", Code: 68},
	{Name: "ТАТАРСТАН РЕСПУБЛИКА", Code: 16},
	{Name: "ТВЕРСКАЯ ОБЛАСТЬ", Code: 69},
	{Name: "ТОМСКАЯ ОБЛАСТЬ", Code: 70},
	{Name: "ТУЛЬСКАЯ ОБЛАСТЬ", Code: 71},
	{Name: "ТЫВА РЕСПУБЛИКА", Code: 17},
	{Name: "ТЮМЕНСКАЯ ОБЛАСТЬ", Code: 72},
	{Name: "УДМУРТСКАЯ РЕСПУБЛИКА", Code: 18},
	{Name: "ХАБАРОВСКИЙ КРАЙ", Code: 27},
	{Name: "ХАКАСИЯ РЕСПУБЛИКА", Code: 19},
	{Name: "ЧЕЛЯБИНСКАЯ ОБЛАСТЬ", Code: 74},
	{Name: "ЧЕЧЕНСКАЯ РЕСПУБЛИКА", Code: 20},
	{Name: "ЧУВАШИЯ РЕСПУБЛИКА", Code: 21},
	{Name: "ЯРОСЛАВСКАЯ ОБЛАСТЬ", Code: 76},
	{Name: "УЛЬЯНОВСКАЯ ОБЛАСТЬ", Code: 73},
	{Name: "НЕНЕЦКИЙ АВТОНОМНЫЙ ОКРУГ", Code: 83, Autonomy: true},
	{Name: "ХАНТЫ-МАНСИЙСКИЙ-ЮГРА АВТОНОМНЫЙ ОКРУГ", Code: 86, Autonomy: true},
	{Name: "ЯМАЛО-НЕНЕЦКИЙ АВТОНОМНЫЙ ОКРУГ", Code: 89, Autonomy: true},
	{Name: "ЕВРЕЙСКАЯ АВТОНОМНАЯ ОБЛАСТЬ", Code: 79, Autonomy: true},
	{Name: "ЧУКОТСКИЙ АВТОНОМНЫЙ ОКРУГ", Code: 87, Autonomy: true},
}

Regions содержит список регионов.

Functions

func FindRegionCodeByIndex

func FindRegionCodeByIndex(index string) (code int, err error)

Types

type Client

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

Client structure.

func NewClient

func NewClient(transport *http.Transport) *Client

NewClient create new pindxru Client.

func (Client) GetPackageIndexes

func (c Client) GetPackageIndexes(pack *Package) (lastMod time.Time, err error)

GetPackageIndexes получает изменения.

func (*Client) GetReferenceRows

func (c *Client) GetReferenceRows() (referenceRows ReferenceRows, err error)

func (*Client) Indexes

func (c *Client) Indexes(referenceRows ReferenceRows, lastModified *time.Time) (indexes []PIndx, lastMod time.Time, err error)

Indexes Возвращает все почтовые индексы из web-справочника.

func (Client) IndexesDbf

func (c Client) IndexesDbf(referenceRows ReferenceRows, fname string, perm os.FileMode, lastMod *time.Time) (modify time.Time, ok bool, err error)

IndexesDbf Загружает dbf-файл со всеми почтовыми индексами.

func (Client) IndexesZip

func (c Client) IndexesZip(referenceRows ReferenceRows, fname string, perm os.FileMode, lastMod *time.Time) (modify time.Time, ok bool, err error)

IndexesZip Загружает zip-файл со всеми почтовыми индексами.

func (Client) PackageDbf

func (c Client) PackageDbf(pack Package, filename string, perm os.FileMode) (err error)

PackageDbf загружает dbf-файл пакета изменений.

func (Client) PackageZip

func (c Client) PackageZip(pack Package, filename string, perm os.FileMode) (err error)

PackageZip загружает zip-файл пакета изменений.

type NPIndx

type NPIndx struct {
	// Новый почтовый индекс объекта почтовой связи в соответствии с действующей системой индексации
	NewIndex string
	// Почтовый индекс объекта почтовой связи в соответствии с действующей системой индексации
	Index string
	// Наименование объекта почтовой связи
	OpsName string
	// Тип объекта почтовой связи
	OpsType string
	//Индекс вышестоящего по иерархии подчиненности объекта почтовой связи
	OpsSub string
	// Наименование области, края, республики, в которой находится объект почтовой связи
	Region string
	// Наименование автономной области, в которой находится объект почтовой связи
	Autonomy string
	// Наименование района, в котором находится объект почтовой связи
	Area string
	// Наименование населенного пункта, в котором находится объект почтовой связи
	City string
	// Наименование подчиненного населенного пункта, в котором находится объект почтовой связи
	SubCity string
	// Дата актуализации информации об объекте почтовой связи
	UpdatedAt time.Time
	// Почтовый индекс объект почтовой связи до ввода действующей системы индексации
	OldIndex string
	// Код региона
	RegionCode int
}

NPIndx structure для обновления.

type PIndx

type PIndx struct {
	// Почтовый индекс объекта почтовой связи в соответствии с действующей системой индексации
	Index string
	// Наименование объекта почтовой связи
	OpsName string
	// Тип объекта почтовой связи
	OpsType string
	// Индекс вышестоящего по иерархии подчиненности объекта почтовой связи
	OpsSub string
	// Наименование области, края, республики, в которой находится объект почтовой связи
	Region string
	// Наименование автономной области, в которой находится объект почтовой связи
	Autonomy string
	// Наименование района, в котором находится объект почтовой связи
	Area string
	// Наименование населенного пункта, в котором находится объект почтовой связи
	City string
	// Наименование подчиненного населенного пункта, в котором находится объект почтовой связи
	SubCity string
	// Дата актуализации информации об объекте почтовой связи
	UpdatedAt time.Time
	// Почтовый индекс объект почтовой связи до ввода действующей системы индексации
	OldIndex string
	// Код региона
	RegionCode int
}

PIndx structure.

type Package

type Package struct {
	Date          time.Time
	Url           string
	NumberRecords int
	Indexes       []NPIndx
}

Package structure. Информация о частичном обновлении.

type ReferenceFile

type ReferenceFile struct {
	Url     string
	Records int
}

type ReferenceRow

type ReferenceRow struct {
	Date   time.Time
	Number string
	Update ReferenceFile
	Full   ReferenceFile
}

type ReferenceRows

type ReferenceRows []ReferenceRow

func (ReferenceRows) GetLastModified

func (r ReferenceRows) GetLastModified() (lastMod time.Time, err error)

GetLastModified Возвращает дату последнего обновления из web-справочника.

func (ReferenceRows) GetUpdatePackages

func (r ReferenceRows) GetUpdatePackages(lastModified *time.Time) (packages []Package, err error)

GetUpdatePackages Возвращает список обновлений начиная от даты >= lastModified.

func (ReferenceRows) LastRow

func (r ReferenceRows) LastRow() (referenceRow *ReferenceRow, err error)

LastRow Возвращает последнюю строку.

Jump to

Keyboard shortcuts

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