2026-02-23 20:02:17 +03:00
|
|
|
package merch
|
|
|
|
|
|
2026-03-01 22:13:39 +03:00
|
|
|
import (
|
2026-03-04 17:02:11 +03:00
|
|
|
"context"
|
|
|
|
|
"merch-api/internal/user"
|
2026-03-01 22:13:39 +03:00
|
|
|
"merch-api/pkg/utils"
|
|
|
|
|
)
|
|
|
|
|
|
2026-03-08 15:12:17 +03:00
|
|
|
const serviceLogHeader string = "[Service]"
|
|
|
|
|
|
2026-02-23 20:02:17 +03:00
|
|
|
type service struct {
|
2026-03-04 17:02:11 +03:00
|
|
|
repo Repository
|
|
|
|
|
utils utils.Utils
|
|
|
|
|
userProvider user.Provider
|
2026-02-23 20:02:17 +03:00
|
|
|
}
|
|
|
|
|
|
2026-03-04 17:02:11 +03:00
|
|
|
func newService(repo Repository, u utils.Utils, up user.Provider) *service {
|
2026-02-23 20:02:17 +03:00
|
|
|
return &service{
|
2026-03-04 17:02:11 +03:00
|
|
|
repo: repo,
|
|
|
|
|
utils: u,
|
|
|
|
|
userProvider: up,
|
2026-03-01 22:13:39 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-10 23:44:24 +03:00
|
|
|
// getOriginsMaps
|
|
|
|
|
// first return name:id
|
|
|
|
|
// second id:name
|
2026-03-07 15:49:54 +03:00
|
|
|
func (s *service) getOriginsMaps(ctx context.Context) (map[string]int64, map[int64]string, error) {
|
2026-03-04 17:02:11 +03:00
|
|
|
origins, err := s.repo.getOrigins(ctx)
|
|
|
|
|
if err != nil {
|
2026-03-08 15:12:17 +03:00
|
|
|
logErr(serviceLogHeader, err)
|
2026-03-07 15:49:54 +03:00
|
|
|
return nil, nil, err
|
2026-03-04 17:02:11 +03:00
|
|
|
}
|
|
|
|
|
|
2026-03-07 15:49:54 +03:00
|
|
|
namesMap := make(map[string]int64, len(origins))
|
|
|
|
|
idsMap := make(map[int64]string, len(origins))
|
|
|
|
|
|
2026-03-04 17:02:11 +03:00
|
|
|
for _, origin := range origins {
|
2026-03-07 15:49:54 +03:00
|
|
|
namesMap[origin.Name] = origin.Id
|
|
|
|
|
idsMap[origin.Id] = origin.Name
|
2026-03-04 17:02:11 +03:00
|
|
|
}
|
|
|
|
|
|
2026-03-07 15:49:54 +03:00
|
|
|
return namesMap, idsMap, nil
|
2026-02-23 20:02:17 +03:00
|
|
|
}
|
2026-03-04 17:59:46 +03:00
|
|
|
|
2026-03-08 15:12:17 +03:00
|
|
|
func (s *service) getMerchUuidMap(ctx context.Context, uuids []string) (map[string]int64, error) {
|
|
|
|
|
return s.repo.getMerchUuidMap(ctx, uuids)
|
|
|
|
|
}
|