niki/service/admin/address_aggregator/get_with_province_city.go

45 lines
1.4 KiB
Go

package adminaddressaggregatorservice
import (
"context"
adminaddresshandler "git.gocasts.ir/ebhomengo/niki/delivery/http_server/admin/address"
param "git.gocasts.ir/ebhomengo/niki/param/admin/address"
admincityparam "git.gocasts.ir/ebhomengo/niki/param/admin/city"
adminprovinceparam "git.gocasts.ir/ebhomengo/niki/param/admin/province"
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
)
func (s Service) GetAggregatedByID(ctx context.Context, addressID uint) (adminaddresshandler.Address, error) {
const op = "adminaddressaggregatorservice.GetAggregatedByID"
address, err := s.repo.GetAddressWithProvinceAndCityByID(ctx, addressID)
if err != nil {
return adminaddresshandler.Address{}, richerror.New(op).WithErr(err)
}
return adminaddresshandler.Address{
Address: param.Data{
ID: address.Address.ID,
PostalCode: address.Address.PostalCode,
Address: address.Address.Address,
Name: address.Address.Name,
Lat: address.Address.Lat,
Lon: address.Address.Lon,
CityID: address.Address.CityID,
ProvinceID: address.Address.ProvinceID,
BenefactorID: address.Address.BenefactorID,
},
Info: adminaddresshandler.Info{
Province: adminprovinceparam.Data{
ID: address.Province.ID,
Name: address.Province.Name,
},
City: admincityparam.Data{
ID: address.City.ID,
Name: address.City.Name,
ProvinceId: address.City.ProvinceID,
},
},
}, nil
}