repository

package
v0.0.0-...-929e0ab Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPostgresDB

func NewPostgresDB(cfg Config) (*sqlx.DB, error)

NewPostgresDB - коннект к БД

Types

type Building

type Building interface {
	Create(cityId, streetId, house int, point string) (int, error)
	CreateNew(building common.BuildingCreateRequest) (int, error)
	GetByCityStreetHouse(cityId int, streetId int, house int) (common.Building, error)
}

Building - здание

type BuildingPostgres

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

BuildingPostgres - репозиторий

func NewBuildingPostgres

func NewBuildingPostgres(db *sqlx.DB) *BuildingPostgres

NewBuildingPostgres - конструктор объекта репозитория

func (*BuildingPostgres) Create

func (b *BuildingPostgres) Create(cityId, streetId, house int, point string) (int, error)

Create - добаление адреса здания по существующим id города и улицы считаем, что принятые id города и улицы существуют в рамках БД (добавлены ранее)

func (*BuildingPostgres) CreateNew

func (b *BuildingPostgres) CreateNew(building common.BuildingCreateRequest) (int, error)

CreateNew - создает новое здание по новому адресу город и улица могт быть новыми - создаем полностью новый адрес

func (*BuildingPostgres) GetByCityStreetHouse

func (b *BuildingPostgres) GetByCityStreetHouse(cityId int, streetId int, house int) (common.Building, error)

GetByCityStreetHouse - получить существующее здание в бд (если не существует - в объекте будут значения по-умолчанию)

type City

type City interface {
	CreateIfNotExists(name string) (int, error)
}

City - город

type CityPostgres

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

CityPostgres - репозиторий

func NewCityPostgres

func NewCityPostgres(db *sqlx.DB) *CityPostgres

NewCityPostgres - конструктор объекта репозитория

func (*CityPostgres) CreateIfNotExists

func (c *CityPostgres) CreateIfNotExists(name string) (int, error)

CreateIfNotExists - создание города, если он еще не существует

type Company

type Company interface {
	Create(company common.CompanyCreateRequest) (int, error)
	GetById(companyId int) (common.Company, error)
	GetAllInBuilding(buildingId int) ([]common.Company, error)
	Exists(name string) (bool, error)
	OpenTransaction() error
	RollbackTransaction() error
	CloseTransaction() error
}

Company - компания

type CompanyPhonePostgres

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

CompanyPhonePostgres - репозиторий

func NewCompanyPhonePostgres

func NewCompanyPhonePostgres(db *sqlx.DB) *CompanyPhonePostgres

NewCompanyPhonePostgres - конструктор объекта репозитория

type CompanyPostgres

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

CompanyPostgres - репозиторий

func NewCompanyPostgres

func NewCompanyPostgres(db *sqlx.DB) *CompanyPostgres

NewCompanyPostgres - конструктор объекта репозитория

func (*CompanyPostgres) CloseTransaction

func (c *CompanyPostgres) CloseTransaction() error

CloseTransaction - закрыте транзакции

func (*CompanyPostgres) Create

func (c *CompanyPostgres) Create(company common.CompanyCreateRequest) (int, error)

Create - создание компании Считаем, что все города и улицы уже занесены в БД, в текущем запросе приходят их id, которые не валидируем

Пришедшее содержимое запроса в объекте common.Company:
{
    "name": "Rambler", // создаем компанию (post)
    "phones": [
        {
            "company_id": 21, // игнорируем
            "number": "32-32-32" // записываем номера в конце - когда имеем id компании
        },
        {
            "company_id": null,
            "number": "33-33-33"
        }
    ],
    "building": {
        "id": null, // игнорируем
        "city_id": 1, // если по совокупности полей city_id  street_id street_id нет записи - создаем, иначе берем id готового
        "street_id": 2,
        "house": 12,
        "point": "(1.234567890, -90.87654321)" // записываем, если пришло (не проверяем)
    },
    "rubric": [
        {
            "id": null, // id всегда есть и он существует (не проверяем)
            "name": "Новая рубрика",
            "parent_rubric_id": null
        }
    ]
}

func (*CompanyPostgres) Exists

func (c *CompanyPostgres) Exists(name string) (bool, error)

Exists - проверка компании на существование

func (*CompanyPostgres) GetAllInBuilding

func (c *CompanyPostgres) GetAllInBuilding(buildingId int) ([]common.Company, error)

GetAllInBuilding - получить все компании по зданию

func (*CompanyPostgres) GetById

func (c *CompanyPostgres) GetById(companyId int) (common.Company, error)

GetById - получить компанию по id

func (*CompanyPostgres) OpenTransaction

func (c *CompanyPostgres) OpenTransaction() error

OpenTransaction - открытие транзакци (нужно тестить, возможно не работает так как нужно)

func (*CompanyPostgres) RollbackTransaction

func (c *CompanyPostgres) RollbackTransaction() error

RollbackTransaction - откат транзакции

type CompanyRubric

type CompanyRubric interface {
	Create(companyId, rubricId int) error
	GetAllRubricCompany(rubricId int) ([]common.Company, error)
}

CompanyRubric - рубрика компании

type CompanyRubricPostgres

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

CompanyRubricPostgres - репозиторий

func NewCompanyRubricPostgres

func NewCompanyRubricPostgres(db *sqlx.DB) *CompanyRubricPostgres

NewCompanyRubricPostgres - конструктор объекта репозитория

func (*CompanyRubricPostgres) Create

func (c *CompanyRubricPostgres) Create(companyId, rubricId int) error

Create - создание

func (*CompanyRubricPostgres) GetAllRubricCompany

func (c *CompanyRubricPostgres) GetAllRubricCompany(rubricId int) ([]common.Company, error)

GetAllRubricCompany - получить все компании по рубрике

type Config

type Config struct {
	Driver   string
	Host     string
	Port     string
	Username string
	Password string
	DBName   string
	SSLMode  string
}

Config - конфиг БД

type Phone

type Phone interface {
	Create(companyId int, number string) error
	GetByCompanyId(companyId int) ([]common.Phone, error)
}

Phone - телефон

type PhonePostgres

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

PhonePostgres - репозиторий

func NewPhonePostgres

func NewPhonePostgres(db *sqlx.DB) *PhonePostgres

NewPhonePostgres - конструктор объекта репозитория

func (*PhonePostgres) Create

func (p *PhonePostgres) Create(companyId int, number string) error

Create - создать телефон компании

func (*PhonePostgres) GetByCompanyId

func (p *PhonePostgres) GetByCompanyId(companyId int) ([]common.Phone, error)

GetByCompanyId - получить компанию

type Repository

type Repository struct {
	Rubric
	City
	Street
	Building
	Company
	CompanyRubric
	Phone
}

Repository - репозитрий

func NewRepository

func NewRepository(db *sqlx.DB) *Repository

NewRepository - конструктор

type Rubric

type Rubric interface {
	Create(name string, parentRubricId int) (int, error)
	FindByName(rubricName string) (common.Rubric, error)
}

Rubric - рубрика (предзаполненные в БД - Транспорт, Недвижимость и т.п.)

type RubricPostgres

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

RubricPostgres - репозиторий

func NewRubricPostgres

func NewRubricPostgres(db *sqlx.DB) *RubricPostgres

NewRubricPostgres - конструктор объекта репозитория

func (*RubricPostgres) Create

func (r *RubricPostgres) Create(name string, parentRubricId int) (int, error)

Create - создание

func (*RubricPostgres) FindByName

func (r *RubricPostgres) FindByName(rubricName string) (common.Rubric, error)

FindByName - поиска по имени

type Street

type Street interface {
	CreateIfNotExists(cityId int, name string) (int, error)
}

Street - улица

type StreetPostgres

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

StreetPostgres - репозиторий

func NewStreetPostgres

func NewStreetPostgres(db *sqlx.DB) *StreetPostgres

NewStreetPostgres - конструктор объекта репозитория

func (*StreetPostgres) CreateIfNotExists

func (s *StreetPostgres) CreateIfNotExists(cityId int, name string) (int, error)

CreateIfNotExists - создание, если еще не существует

Jump to

Keyboard shortcuts

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