-
Notifications
You must be signed in to change notification settings - Fork 0
/
sales.go
42 lines (34 loc) · 959 Bytes
/
sales.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package server
import (
"context"
"time"
pb "github.com/brotherlogic/gramophile/proto"
)
func (s *Server) GetSale(ctx context.Context, req *pb.GetSaleRequest) (*pb.GetSaleResponse, error) {
user, err := s.getUser(ctx)
if err != nil {
return nil, err
}
if req.GetMinMedian() > 0 {
var ret []*pb.SaleInfo
sales, err := s.d.GetSales(ctx, user.GetUser().GetDiscogsUserId())
if err != nil {
return nil, err
}
for _, sid := range sales {
sale, err := s.d.GetSale(ctx, user.GetUser().GetDiscogsUserId(), sid)
if err != nil {
return nil, err
}
if time.Since(time.Unix(0, sale.GetTimeAtMedian())) > time.Second*time.Duration(req.GetMinMedian()) {
ret = append(ret, sale)
}
}
return &pb.GetSaleResponse{Sales: ret}, nil
}
saleinfo, err := s.d.GetSale(ctx, user.GetUser().GetDiscogsUserId(), req.GetId())
if err != nil {
return nil, err
}
return &pb.GetSaleResponse{Sales: []*pb.SaleInfo{saleinfo}}, nil
}