• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

a1y-developer / doc-formatter / 21472242535

29 Jan 2026 09:11AM UTC coverage: 80.934% (+1.4%) from 79.513%
21472242535

Pull #33

github

web-flow
Merge 158fd28ee into c4d05f1c0
Pull Request #33: chore: list files

61 of 93 new or added lines in 8 files covered. (65.59%)

9 existing lines in 2 files now uncovered.

1698 of 2098 relevant lines covered (80.93%)

0.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

30.23
/pkg/storage/handler/document_handler.go
1
package handler
2

3
import (
4
        "bytes"
5
        "context"
6

7
        storagepb "github.com/a1y/doc-formatter/api/grpc/storage/v1"
8
        "github.com/a1y/doc-formatter/pkg/storage/domain/entity"
9
        "github.com/google/uuid"
10
)
11

12
func (h *Handler) UploadFile(ctx context.Context, req *storagepb.UploadFileRequest) (*storagepb.UploadFileResponse, error) {
1✔
13
        reader := bytes.NewReader(req.Content)
1✔
14
        documentEntity := entity.Document{
1✔
15
                UserID:   uuid.MustParse(req.UserId),
1✔
16
                FileName: req.FileName,
1✔
17
                FileSize: req.FileSize,
1✔
18
        }
1✔
19
        documentResponse, err := h.documentManager.UploadDocument(ctx, &documentEntity, reader)
1✔
20
        if err != nil {
1✔
21
                return nil, err
×
22
        }
×
23
        return &storagepb.UploadFileResponse{
×
NEW
24
                Document: &storagepb.Document{
×
NEW
25
                        Id:        documentResponse.ID.String(),
×
NEW
26
                        UserId:    documentResponse.UserID.String(),
×
NEW
27
                        FileName:  documentResponse.FileName,
×
NEW
28
                        FileSize:  documentResponse.FileSize,
×
NEW
29
                        ObjectKey: documentResponse.ObjectKey,
×
NEW
30
                        CreatedAt: documentResponse.CreateAt.Unix(),
×
NEW
31
                        UpdatedAt: documentResponse.UpdateAt.Unix(),
×
NEW
32
                },
×
NEW
33
        }, nil
×
34
}
35

36
func (h *Handler) ListFilesByUserId(ctx context.Context, req *storagepb.ListFilesByUserIdRequest) (*storagepb.ListFilesByUserIdResponse, error) {
1✔
37
        userID := uuid.MustParse(req.UserId)
1✔
38
        documents, err := h.documentManager.ListDocumentsByUserID(ctx, userID)
1✔
39
        if err != nil {
1✔
NEW
40
                return nil, err
×
NEW
41
        }
×
42

NEW
43
        pbDocuments := make([]*storagepb.Document, len(documents))
×
NEW
44
        for i, doc := range documents {
×
NEW
45
                pbDocuments[i] = &storagepb.Document{
×
NEW
46
                        Id:        doc.ID.String(),
×
NEW
47
                        UserId:    doc.UserID.String(),
×
NEW
48
                        FileName:  doc.FileName,
×
NEW
49
                        FileSize:  doc.FileSize,
×
NEW
50
                        ObjectKey: doc.ObjectKey,
×
NEW
51
                        CreatedAt: doc.CreateAt.Unix(),
×
NEW
52
                        UpdatedAt: doc.UpdateAt.Unix(),
×
NEW
53
                }
×
NEW
54
        }
×
55

NEW
56
        return &storagepb.ListFilesByUserIdResponse{
×
NEW
57
                Documents: pbDocuments,
×
UNCOV
58
        }, nil
×
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc