forked from ebhomengo/niki
1
0
Fork 0
niki/service/benefactor/address/update.go

36 lines
1.1 KiB
Go

package benefactoraddressservice
import (
"context"
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/address"
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
)
func (s Service) Update(ctx context.Context, req param.UpdateAddressRequest) (param.UpdateAddressResponse, error) {
const op = "benefactoraddressservice.Update"
if fieldErrors, vErr := s.vld.ValidateUpdateAddress(ctx, req); vErr != nil {
return param.UpdateAddressResponse{FieldErrors: fieldErrors}, richerror.New(op).WithErr(vErr)
}
address, gErr := s.repo.GetAddressByID(ctx, req.ID)
if gErr != nil {
return param.UpdateAddressResponse{}, richerror.New(op).WithErr(gErr)
}
address.ID = req.ID
address.PostalCode = req.PostalCode
address.Address = req.Address
address.Name = req.Name
address.Lat = req.Lat
address.Lon = req.Lon
address.CityID = req.CityID
address.BenefactorID = req.BenefactorID
uErr := s.repo.UpdateAddress(ctx, address)
if uErr != nil {
return param.UpdateAddressResponse{}, richerror.New(op).WithErr(uErr)
}
return param.UpdateAddressResponse{}, nil
}