mirror of
https://github.com/tgdrive/teldrive.git
synced 2025-01-09 00:29:57 +08:00
don't modify errors
This commit is contained in:
parent
5546b81e51
commit
1e2da6d627
6 changed files with 28 additions and 38 deletions
|
@ -81,8 +81,8 @@ type FileOperation struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type DirMove struct {
|
type DirMove struct {
|
||||||
Source string `json:"source"`
|
Source string `json:"source" binding:"required"`
|
||||||
Destination string `json:"destination"`
|
Destination string `json:"destination" binding:"required"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MkDir struct {
|
type MkDir struct {
|
||||||
|
|
|
@ -7,7 +7,6 @@ type UploadQuery struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type UploadPartOut struct {
|
type UploadPartOut struct {
|
||||||
ID string `json:"id"`
|
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
PartId int `json:"partId"`
|
PartId int `json:"partId"`
|
||||||
PartNo int `json:"partNo"`
|
PartNo int `json:"partNo"`
|
||||||
|
|
|
@ -159,13 +159,11 @@ func (as *AuthService) LogIn(c *gin.Context) (*schemas.Message, *types.AppError)
|
||||||
|
|
||||||
if err := as.Db.Model(&models.User{}).Where("user_id = ?", session.UserID).
|
if err := as.Db.Model(&models.User{}).Where("user_id = ?", session.UserID).
|
||||||
Find(&result).Error; err != nil {
|
Find(&result).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to find user"),
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
Code: http.StatusInternalServerError}
|
|
||||||
}
|
}
|
||||||
if len(result) == 0 {
|
if len(result) == 0 {
|
||||||
if err := as.Db.Create(&user).Error; err != nil {
|
if err := as.Db.Create(&user).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to create or update user"),
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
Code: http.StatusInternalServerError}
|
|
||||||
}
|
}
|
||||||
//Create root folder on first login
|
//Create root folder on first login
|
||||||
|
|
||||||
|
@ -180,8 +178,7 @@ func (as *AuthService) LogIn(c *gin.Context) (*schemas.Message, *types.AppError)
|
||||||
ParentID: "root",
|
ParentID: "root",
|
||||||
}
|
}
|
||||||
if err := as.Db.Create(file).Error; err != nil {
|
if err := as.Db.Create(file).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to create root folder"),
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
Code: http.StatusInternalServerError}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,8 +187,7 @@ func (as *AuthService) LogIn(c *gin.Context) (*schemas.Message, *types.AppError)
|
||||||
//create session
|
//create session
|
||||||
|
|
||||||
if err := as.Db.Create(&models.Session{UserId: session.UserID, Hash: hexToken, Session: session.Sesssion}).Error; err != nil {
|
if err := as.Db.Create(&models.Session{UserId: session.UserID, Hash: hexToken, Session: session.Sesssion}).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to create user session"),
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
Code: http.StatusInternalServerError}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "login success"}, nil
|
return &schemas.Message{Message: "login success"}, nil
|
||||||
|
|
|
@ -54,7 +54,7 @@ func (fs *FileService) CreateFile(c *gin.Context) (*schemas.FileOut, *types.AppE
|
||||||
if fileIn.Path != "" {
|
if fileIn.Path != "" {
|
||||||
var parent models.File
|
var parent models.File
|
||||||
if err := fs.Db.Where("type = ? AND path = ?", "folder", fileIn.Path).First(&parent).Error; err != nil {
|
if err := fs.Db.Where("type = ? AND path = ?", "folder", fileIn.Path).First(&parent).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("parent directory not found"), Code: http.StatusNotFound}
|
return nil, &types.AppError{Error: err, Code: http.StatusNotFound}
|
||||||
}
|
}
|
||||||
fileDB.ParentID = parent.ID
|
fileDB.ParentID = parent.ID
|
||||||
}
|
}
|
||||||
|
@ -125,11 +125,11 @@ func (fs *FileService) UpdateFile(c *gin.Context) (*schemas.FileOut, *types.AppE
|
||||||
|
|
||||||
if fileUpdate.Type == "folder" && fileUpdate.Name != "" {
|
if fileUpdate.Type == "folder" && fileUpdate.Name != "" {
|
||||||
if err := fs.Db.Raw("select * from teldrive.update_folder(?, ?)", fileID, fileUpdate.Name).Scan(&files).Error; err != nil {
|
if err := fs.Db.Raw("select * from teldrive.update_folder(?, ?)", fileID, fileUpdate.Name).Scan(&files).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to update the folder"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if err := fs.Db.Model(&files).Clauses(clause.Returning{}).Where("id = ?", fileID).Updates(fileUpdate).Error; err != nil {
|
if err := fs.Db.Model(&files).Clauses(clause.Returning{}).Where("id = ?", fileID).Updates(fileUpdate).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to update the file"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,8 +286,7 @@ func (fs *FileService) MakeDirectory(c *gin.Context) (*schemas.FileOut, *types.A
|
||||||
userId, _ := getUserAuth(c)
|
userId, _ := getUserAuth(c)
|
||||||
if err := fs.Db.Raw("select * from teldrive.create_directories(?, ?)", userId, payload.Path).
|
if err := fs.Db.Raw("select * from teldrive.create_directories(?, ?)", userId, payload.Path).
|
||||||
Scan(&files).Error; err != nil {
|
Scan(&files).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to create directory"),
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
Code: http.StatusInternalServerError}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
file := mapper.ToFileOut(files[0])
|
file := mapper.ToFileOut(files[0])
|
||||||
|
@ -370,7 +369,7 @@ func (fs *FileService) CopyFile(c *gin.Context) (*schemas.FileOut, *types.AppErr
|
||||||
var destRes []models.File
|
var destRes []models.File
|
||||||
|
|
||||||
if err := fs.Db.Raw("select * from teldrive.create_directories(?, ?)", userId, payload.Destination).Scan(&destRes).Error; err != nil {
|
if err := fs.Db.Raw("select * from teldrive.create_directories(?, ?)", userId, payload.Destination).Scan(&destRes).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to create destination"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
dest := destRes[0]
|
dest := destRes[0]
|
||||||
|
@ -389,7 +388,7 @@ func (fs *FileService) CopyFile(c *gin.Context) (*schemas.FileOut, *types.AppErr
|
||||||
dbFile.ChannelID = &file.ChannelID
|
dbFile.ChannelID = &file.ChannelID
|
||||||
|
|
||||||
if err := fs.Db.Create(&dbFile).Error; err != nil {
|
if err := fs.Db.Create(&dbFile).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to copy file"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,12 +409,12 @@ func (fs *FileService) MoveFiles(c *gin.Context) (*schemas.Message, *types.AppEr
|
||||||
var destination models.File
|
var destination models.File
|
||||||
|
|
||||||
if err := fs.Db.Model(&models.File{}).Select("id").Where("path = ?", payload.Destination).First(&destination).Error; errors.Is(err, gorm.ErrRecordNotFound) {
|
if err := fs.Db.Model(&models.File{}).Select("id").Where("path = ?", payload.Destination).First(&destination).Error; errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
return nil, &types.AppError{Error: errors.New("destination not found"), Code: http.StatusNotFound}
|
return nil, &types.AppError{Error: err, Code: http.StatusNotFound}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := fs.Db.Model(&models.File{}).Where("id IN ?", payload.Files).UpdateColumn("parent_id", destination.ID).Error; err != nil {
|
if err := fs.Db.Model(&models.File{}).Where("id IN ?", payload.Files).UpdateColumn("parent_id", destination.ID).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("move failed"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "files moved"}, nil
|
return &schemas.Message{Message: "files moved"}, nil
|
||||||
|
@ -426,11 +425,11 @@ func (fs *FileService) DeleteFiles(c *gin.Context) (*schemas.Message, *types.App
|
||||||
var payload schemas.FileOperation
|
var payload schemas.FileOperation
|
||||||
|
|
||||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := fs.Db.Exec("call teldrive.delete_files($1)", payload.Files).Error; err != nil {
|
if err := fs.Db.Exec("call teldrive.delete_files($1)", payload.Files).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to delete files"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "files deleted"}, nil
|
return &schemas.Message{Message: "files deleted"}, nil
|
||||||
|
@ -441,13 +440,13 @@ func (fs *FileService) MoveDirectory(c *gin.Context) (*schemas.Message, *types.A
|
||||||
var payload schemas.DirMove
|
var payload schemas.DirMove
|
||||||
|
|
||||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
userId, _ := getUserAuth(c)
|
userId, _ := getUserAuth(c)
|
||||||
|
|
||||||
if err := fs.Db.Exec("select * from teldrive.move_directory(? , ? , ?)", payload.Source, payload.Destination, userId).Error; err != nil {
|
if err := fs.Db.Exec("select * from teldrive.move_directory(? , ? , ?)", payload.Source, payload.Destination, userId).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to move directory"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "directory moved"}, nil
|
return &schemas.Message{Message: "directory moved"}, nil
|
||||||
|
|
|
@ -39,7 +39,7 @@ func (us *UploadService) GetUploadFileById(c *gin.Context) (*schemas.UploadOut,
|
||||||
if err := us.Db.Model(&models.Upload{}).Order("part_no").Where("upload_id = ?", uploadId).
|
if err := us.Db.Model(&models.Upload{}).Order("part_no").Where("upload_id = ?", uploadId).
|
||||||
Where("created_at >= ?", time.Now().UTC().AddDate(0, 0, -config.UploadRetention)).
|
Where("created_at >= ?", time.Now().UTC().AddDate(0, 0, -config.UploadRetention)).
|
||||||
Find(&parts).Error; err != nil {
|
Find(&parts).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to fetch from db"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.UploadOut{Parts: parts}, nil
|
return &schemas.UploadOut{Parts: parts}, nil
|
||||||
|
@ -48,7 +48,7 @@ func (us *UploadService) GetUploadFileById(c *gin.Context) (*schemas.UploadOut,
|
||||||
func (us *UploadService) DeleteUploadFile(c *gin.Context) (*schemas.Message, *types.AppError) {
|
func (us *UploadService) DeleteUploadFile(c *gin.Context) (*schemas.Message, *types.AppError) {
|
||||||
uploadId := c.Param("id")
|
uploadId := c.Param("id")
|
||||||
if err := us.Db.Where("upload_id = ?", uploadId).Delete(&models.Upload{}).Error; err != nil {
|
if err := us.Db.Where("upload_id = ?", uploadId).Delete(&models.Upload{}).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to delete upload"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "upload deleted"}, nil
|
return &schemas.Message{Message: "upload deleted"}, nil
|
||||||
|
@ -61,7 +61,7 @@ func (us *UploadService) CreateUploadPart(c *gin.Context) (*schemas.UploadPartOu
|
||||||
var payload schemas.UploadPart
|
var payload schemas.UploadPart
|
||||||
|
|
||||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
partUpload := &models.Upload{
|
partUpload := &models.Upload{
|
||||||
|
@ -101,10 +101,6 @@ func (us *UploadService) UploadFile(c *gin.Context) (*schemas.UploadPartOut, *ty
|
||||||
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
if uploadQuery.Filename == "" {
|
|
||||||
return nil, &types.AppError{Error: errors.New("filename missing"), Code: http.StatusBadRequest}
|
|
||||||
}
|
|
||||||
|
|
||||||
userId, session := getUserAuth(c)
|
userId, session := getUserAuth(c)
|
||||||
|
|
||||||
uploadId := c.Param("id")
|
uploadId := c.Param("id")
|
||||||
|
@ -127,7 +123,7 @@ func (us *UploadService) UploadFile(c *gin.Context) (*schemas.UploadPartOut, *ty
|
||||||
tokens, err := getBotsToken(c, userId, channelId)
|
tokens, err := getBotsToken(c, userId, channelId)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to fetch bots"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(tokens) == 0 {
|
if len(tokens) == 0 {
|
||||||
|
@ -199,7 +195,7 @@ func (us *UploadService) UploadFile(c *gin.Context) (*schemas.UploadPartOut, *ty
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := us.Db.Create(partUpload).Error; err != nil {
|
if err := us.Db.Create(partUpload).Error; err != nil {
|
||||||
return errors.New("failed to upload part")
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
out = mapper.ToUploadOut(partUpload)
|
out = mapper.ToUploadOut(partUpload)
|
||||||
|
|
|
@ -78,7 +78,7 @@ func (us *UserService) GetStats(c *gin.Context) (*schemas.AccountStats, *types.A
|
||||||
userId, _ := getUserAuth(c)
|
userId, _ := getUserAuth(c)
|
||||||
var res []schemas.AccountStats
|
var res []schemas.AccountStats
|
||||||
if err := us.Db.Raw("select * from teldrive.account_stats(?);", userId).Scan(&res).Error; err != nil {
|
if err := us.Db.Raw("select * from teldrive.account_stats(?);", userId).Scan(&res).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to get stats"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
return &res[0], nil
|
return &res[0], nil
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ func (us *UserService) UpdateChannel(c *gin.Context) (*schemas.Message, *types.A
|
||||||
var payload schemas.Channel
|
var payload schemas.Channel
|
||||||
|
|
||||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
channel := &models.Channel{ChannelID: payload.ChannelID, ChannelName: payload.ChannelName, UserID: userId,
|
channel := &models.Channel{ChannelID: payload.ChannelID, ChannelName: payload.ChannelName, UserID: userId,
|
||||||
|
@ -167,7 +167,7 @@ func (us *UserService) AddBots(c *gin.Context) (*schemas.Message, *types.AppErro
|
||||||
var botsTokens []string
|
var botsTokens []string
|
||||||
|
|
||||||
if err := c.ShouldBindJSON(&botsTokens); err != nil {
|
if err := c.ShouldBindJSON(&botsTokens); err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
return nil, &types.AppError{Error: err, Code: http.StatusBadRequest}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(botsTokens) == 0 {
|
if len(botsTokens) == 0 {
|
||||||
|
@ -195,7 +195,7 @@ func (us *UserService) RemoveBots(c *gin.Context) (*schemas.Message, *types.AppE
|
||||||
|
|
||||||
if err := us.Db.Where("user_id = ?", userID).Where("channel_id = ?", channelId).
|
if err := us.Db.Where("user_id = ?", userID).Where("channel_id = ?", channelId).
|
||||||
Delete(&models.Bot{}).Error; err != nil {
|
Delete(&models.Bot{}).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to delete bots"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
cache.GetCache().Delete(fmt.Sprintf("users:bots:%d:%d", userID, channelId))
|
cache.GetCache().Delete(fmt.Sprintf("users:bots:%d:%d", userID, channelId))
|
||||||
|
@ -301,7 +301,7 @@ func (us *UserService) addBots(c context.Context, client *telegram.Client, userI
|
||||||
cache.GetCache().Delete(fmt.Sprintf("users:bots:%d:%d", userId, channelId))
|
cache.GetCache().Delete(fmt.Sprintf("users:bots:%d:%d", userId, channelId))
|
||||||
|
|
||||||
if err := us.Db.Clauses(clause.OnConflict{DoNothing: true}).Create(&payload).Error; err != nil {
|
if err := us.Db.Clauses(clause.OnConflict{DoNothing: true}).Create(&payload).Error; err != nil {
|
||||||
return nil, &types.AppError{Error: errors.New("failed to add bots"), Code: http.StatusInternalServerError}
|
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &schemas.Message{Message: "bots added"}, nil
|
return &schemas.Message{Message: "bots added"}, nil
|
||||||
|
|
Loading…
Reference in a new issue