mirror of
https://github.com/tgdrive/teldrive.git
synced 2025-09-08 15:36:24 +08:00
add uplaod part explicitly
This commit is contained in:
parent
b8fab88828
commit
d3f42e595e
4 changed files with 63 additions and 14 deletions
|
@ -45,13 +45,12 @@ func MapFileToFileOutFull(file models.File) *schemas.FileOutFull {
|
|||
|
||||
func MapUploadSchema(in *models.Upload) *schemas.UploadPartOut {
|
||||
out := &schemas.UploadPartOut{
|
||||
ID: in.ID,
|
||||
Name: in.Name,
|
||||
PartId: in.PartId,
|
||||
ChannelID: in.ChannelID,
|
||||
PartNo: in.PartNo,
|
||||
TotalParts: in.TotalParts,
|
||||
Size: in.Size,
|
||||
ID: in.ID,
|
||||
Name: in.Name,
|
||||
PartId: in.PartId,
|
||||
ChannelID: in.ChannelID,
|
||||
PartNo: in.PartNo,
|
||||
Size: in.Size,
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
|
|
@ -16,6 +16,18 @@ func addUploadRoutes(rg *gin.RouterGroup) {
|
|||
|
||||
uploadService := services.UploadService{Db: database.DB}
|
||||
|
||||
r.POST("/parts", func(c *gin.Context) {
|
||||
|
||||
res, err := uploadService.CreateUploadPart(c)
|
||||
|
||||
if err != nil {
|
||||
c.AbortWithError(err.Code, err.Error)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, res)
|
||||
})
|
||||
|
||||
r.GET("/:id", func(c *gin.Context) {
|
||||
|
||||
res, err := uploadService.GetUploadFileById(c)
|
||||
|
|
|
@ -8,15 +8,23 @@ type UploadQuery struct {
|
|||
}
|
||||
|
||||
type UploadPartOut struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
PartId int `json:"partId"`
|
||||
PartNo int `json:"partNo"`
|
||||
TotalParts int `json:"totalParts"`
|
||||
ChannelID int64 `json:"channelId"`
|
||||
Size int64 `json:"size"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
PartId int `json:"partId"`
|
||||
PartNo int `json:"partNo"`
|
||||
ChannelID int64 `json:"channelId"`
|
||||
Size int64 `json:"size"`
|
||||
}
|
||||
|
||||
type UploadOut struct {
|
||||
Parts []UploadPartOut `json:"parts"`
|
||||
}
|
||||
|
||||
type UploadPart struct {
|
||||
Name string `json:"name"`
|
||||
UploadId string `json:"uploadId"`
|
||||
PartId int `json:"partId"`
|
||||
PartNo int `json:"partNo"`
|
||||
ChannelID int64 `json:"channelId"`
|
||||
Size int64 `json:"size"`
|
||||
}
|
||||
|
|
|
@ -50,6 +50,36 @@ func (us *UploadService) DeleteUploadFile(c *gin.Context) *types.AppError {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (us *UploadService) CreateUploadPart(c *gin.Context) (*schemas.UploadPartOut, *types.AppError) {
|
||||
|
||||
userId, _ := getUserAuth(c)
|
||||
|
||||
var payload schemas.UploadPart
|
||||
|
||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||
return nil, &types.AppError{Error: errors.New("invalid request payload"), Code: http.StatusBadRequest}
|
||||
}
|
||||
|
||||
partUpload := &models.Upload{
|
||||
Name: payload.Name,
|
||||
UploadId: payload.UploadId,
|
||||
PartId: payload.PartId,
|
||||
ChannelID: payload.ChannelID,
|
||||
Size: payload.Size,
|
||||
PartNo: payload.PartNo,
|
||||
TotalParts: 1,
|
||||
UserId: userId,
|
||||
}
|
||||
|
||||
if err := us.Db.Create(partUpload).Error; err != nil {
|
||||
return nil, &types.AppError{Error: err, Code: http.StatusInternalServerError}
|
||||
}
|
||||
|
||||
out := mapper.MapUploadSchema(partUpload)
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (us *UploadService) UploadFile(c *gin.Context) (*schemas.UploadPartOut, *types.AppError) {
|
||||
|
||||
var uploadQuery schemas.UploadQuery
|
||||
|
|
Loading…
Add table
Reference in a new issue