|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package rpc
-
- import (
- "context"
-
- "gitlink.org.cn/cloudream/jcs-pub/common/ecode"
- "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc"
- hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/hub"
- )
-
- func (svc *Service) PubShardsStore(ctx context.Context, msg *hubrpc.PubShardsStore) (*hubrpc.PubShardsStoreResp, *rpc.CodeError) {
- authInfo, ok := rpc.GetAuthInfo(ctx)
- if !ok {
- return nil, rpc.Failed(ecode.Unauthorized, "unauthorized")
- }
-
- pubShards, cerr := svc.pubShards.GetOrLoad(msg.PubShardsID, msg.Password)
- if cerr != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "load pub shards store: %v", cerr)
- }
-
- info, err := pubShards.StoreShard(authInfo.UserID, msg.Path, msg.Hash, msg.Size)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "store file: %v", err)
- }
-
- return &hubrpc.PubShardsStoreResp{
- Info: info,
- }, nil
- }
-
- func (svc *Service) PubShardsInfo(ctx context.Context, msg *hubrpc.PubShardsInfo) (*hubrpc.PubShardsInfoResp, *rpc.CodeError) {
- pubShards, err := svc.pubShards.GetOrLoad(msg.PubShardsID, msg.Password)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "load pub shards store: %v", err)
- }
-
- info, err := pubShards.InfoShard(msg.FileHash)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, err.Error())
- }
-
- return &hubrpc.PubShardsInfoResp{
- Info: info,
- }, nil
- }
-
- func (svc *Service) PubShardsListAll(ctx context.Context, msg *hubrpc.PubShardsListAll) (*hubrpc.PubShardsListAllResp, *rpc.CodeError) {
- authInfo, ok := rpc.GetAuthInfo(ctx)
- if !ok {
- return nil, rpc.Failed(ecode.Unauthorized, "unauthorized")
- }
-
- pubShards, err := svc.pubShards.GetOrLoad(msg.PubShardsID, msg.Password)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "load pub shards store: %v", err)
- }
-
- infos, err := pubShards.ListUserAll(authInfo.UserID)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "list all: %v", err)
- }
-
- return &hubrpc.PubShardsListAllResp{
- Infos: infos,
- }, nil
- }
-
- func (svc *Service) PubShardsGC(ctx context.Context, msg *hubrpc.PubShardsGC) (*hubrpc.PubShardsGCResp, *rpc.CodeError) {
- authInfo, ok := rpc.GetAuthInfo(ctx)
- if !ok {
- return nil, rpc.Failed(ecode.Unauthorized, "unauthorized")
- }
-
- pubShards, err := svc.pubShards.GetOrLoad(msg.PubShardsID, msg.Password)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "load pub shards store: %v", err)
- }
-
- err = pubShards.GC(authInfo.UserID, msg.FileHashes)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "reset hashes: %v", err)
- }
-
- return &hubrpc.PubShardsGCResp{}, nil
- }
-
- func (svc *Service) PubShardsStats(ctx context.Context, msg *hubrpc.PubShardsStats) (*hubrpc.PubShardsStatsResp, *rpc.CodeError) {
- authInfo, ok := rpc.GetAuthInfo(ctx)
- if !ok {
- return nil, rpc.Failed(ecode.Unauthorized, "unauthorized")
- }
-
- pubShards, err := svc.pubShards.GetOrLoad(msg.PubShardsID, msg.Password)
- if err != nil {
- return nil, rpc.Failed(ecode.OperationFailed, "load pub shards store: %v", err)
- }
-
- stats := pubShards.GetUserStats(authInfo.UserID)
-
- return &hubrpc.PubShardsStatsResp{
- Stats: stats,
- }, nil
- }
|