Skip to content

Commit 3e265de

Browse files
author
RahatMelsov
committed
fix: добавили много логики для токенов, но сломался стрим файла, надо будет сверить с девелопом, где все рабаотло
1 parent f07447c commit 3e265de

File tree

23 files changed

+708
-223
lines changed

23 files changed

+708
-223
lines changed

api/proto/file/v1/file.proto

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
1+
12
syntax = "proto3";
23

34
package file.v1;
45
option go_package = "github.com/rtmelsov/adv-keeper/gen/go/file/v1;filev1";
56

7+
import "google/protobuf/timestamp.proto";
8+
69
service FileService {
710
// Клиент шлёт поток кусков, сервер в конце отвечает сводкой
811
rpc Upload(stream UploadRequest) returns (UploadResponse);
12+
// Список файлов текущего пользователя (берём user_id из контекста)
13+
rpc GetFiles(GetFilesRequest) returns (GetFilesResponse);
14+
}
15+
16+
message GetFilesRequest {
17+
int32 limit = 1; // по умолчанию 50
18+
int32 offset = 2; // по умолчанию 0
19+
}
20+
21+
message FileItem {
22+
string filename = 1;
23+
int64 size = 2;
24+
google.protobuf.Timestamp created_at = 3;
25+
}
26+
27+
message GetFilesResponse {
28+
repeated FileItem files = 1;
929
}
1030

1131
message UploadRequest {
@@ -21,12 +41,15 @@ message FileInfo {
2141
}
2242

2343
message FileChunk {
24-
bytes content = 1; // данные куска (< 4 MiB — лимит gRPC на сообщение)
25-
int64 offset = 2; // сдвиг от начала файла (полезно для резюмации)
44+
bytes content = 1; // данные куска (< 4 MiB — лимит gRPC на сообщение)
45+
int64 offset = 2; // сдвиг от начала файла (полезно для резюмации)
2646
}
2747

2848
message UploadResponse {
2949
string stored_as = 1; // путь/имя сохранённого файла на сервере
3050
int64 bytes_received = 2; // сколько байт приняли
3151
string sha256 = 3; // контрольная сумма принятого
3252
}
53+
54+
55+

cmd/server/main.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
commonv1 "github.com/rtmelsov/adv-keeper/gen/go/proto/common/v1"
1111
filev1 "github.com/rtmelsov/adv-keeper/gen/go/proto/file/v1"
1212
db "github.com/rtmelsov/adv-keeper/internal/db"
13-
"github.com/rtmelsov/adv-keeper/internal/file"
1413
"github.com/rtmelsov/adv-keeper/internal/helpers"
1514
"github.com/rtmelsov/adv-keeper/internal/middleware"
1615
"github.com/rtmelsov/adv-keeper/internal/server"
@@ -50,7 +49,7 @@ func main() {
5049
}),
5150
)
5251
commonv1.RegisterAuthServiceServer(s, server.New(q))
53-
filev1.RegisterFileServiceServer(s, file.New(q))
52+
filev1.RegisterFileServiceServer(s, server.NewFile(q))
5453

5554
reflection.Register(s)
5655

db/queries/auth.sql

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- name: RegisterWithDevice :one
1+
-- name: Register :one
22
INSERT INTO users (email, pwd_phc, e2ee_pub)
33
VALUES ($1, $2, $3)
44
RETURNING id;
@@ -9,16 +9,18 @@ FROM users
99
WHERE email = $1;
1010

1111
-- name: AddFile :one
12-
INSERT INTO files (user_id, name, path)
13-
VALUES ($1, $2, $3)
14-
RETURNING id, user_id, name, path, created_at;
12+
INSERT INTO files (user_id, filename, path, size_bytes)
13+
VALUES ($1, $2, $3, $4)
14+
RETURNING id, user_id, filename, path, size_bytes, created_at;
1515

1616
-- name: ListFilesByUser :many
17-
SELECT id, name, path, created_at
17+
SELECT id, filename, path, size_bytes, created_at
1818
FROM files
1919
WHERE user_id = $1
2020
ORDER BY created_at DESC;
2121

22-
-- name: DeleteFile :exec
22+
-- name: DeleteFile :one
2323
DELETE FROM files
24-
WHERE id = $1 AND user_id = $2;
24+
WHERE id = $1 AND user_id = $2
25+
RETURNING id; -- проще понять, удалилось или нет
26+

0 commit comments

Comments
 (0)