Documentation ¶
Index ¶
- func NewPostgresDB(cfg Config) (*sqlx.DB, error)
- type Building
- type BuildingPostgres
- type City
- type CityPostgres
- type Company
- type CompanyPhonePostgres
- type CompanyPostgres
- func (c *CompanyPostgres) CloseTransaction() error
- func (c *CompanyPostgres) Create(company common.CompanyCreateRequest) (int, error)
- func (c *CompanyPostgres) Exists(name string) (bool, error)
- func (c *CompanyPostgres) GetAllInBuilding(buildingId int) ([]common.Company, error)
- func (c *CompanyPostgres) GetById(companyId int) (common.Company, error)
- func (c *CompanyPostgres) OpenTransaction() error
- func (c *CompanyPostgres) RollbackTransaction() error
- type CompanyRubric
- type CompanyRubricPostgres
- type Config
- type Phone
- type PhonePostgres
- type Repository
- type Rubric
- type RubricPostgres
- type Street
- type StreetPostgres
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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 ¶
Repository - репозитрий
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 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 - создание, если еще не существует