mirror of
https://github.com/simon987/ws_bucket.git
synced 2025-04-18 01:36:42 +00:00
Indicate duplicate upload slots to the client
This commit is contained in:
parent
b611c4d1cf
commit
b05c9f2b1a
19
api/slot.go
19
api/slot.go
@ -53,11 +53,18 @@ func (api *WebApi) AllocateUploadSlot(ctx *fasthttp.RequestCtx) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
api.allocateUploadSlot(req)
|
err = api.allocateUploadSlot(req)
|
||||||
|
|
||||||
Json(GenericResponse{
|
if err == nil {
|
||||||
Ok: true,
|
Json(GenericResponse{
|
||||||
}, ctx)
|
Ok: true,
|
||||||
|
}, ctx)
|
||||||
|
} else {
|
||||||
|
Json(GenericResponse{
|
||||||
|
Ok: false,
|
||||||
|
Message: err.Error(),
|
||||||
|
}, ctx)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *WebApi) Upload(ctx *fasthttp.RequestCtx) {
|
func (api *WebApi) Upload(ctx *fasthttp.RequestCtx) {
|
||||||
@ -178,7 +185,7 @@ func (api *WebApi) ReadUploadSlot(ctx *fasthttp.RequestCtx) {
|
|||||||
mu.(*sync.RWMutex).RUnlock()
|
mu.(*sync.RWMutex).RUnlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) {
|
func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) error {
|
||||||
|
|
||||||
slot := &UploadSlot{
|
slot := &UploadSlot{
|
||||||
MaxSize: req.MaxSize,
|
MaxSize: req.MaxSize,
|
||||||
@ -190,5 +197,5 @@ func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) {
|
|||||||
"slot": slot,
|
"slot": slot,
|
||||||
}).Info("Allocated new upload slot")
|
}).Info("Allocated new upload slot")
|
||||||
|
|
||||||
api.db.Create(slot)
|
return api.db.Create(slot).Error
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
||||||
"github.com/simon987/ws_bucket/api"
|
"github.com/simon987/ws_bucket/api"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -22,4 +23,5 @@ func TestMain(m *testing.M) {
|
|||||||
time.Sleep(time.Millisecond * 100)
|
time.Sleep(time.Millisecond * 100)
|
||||||
|
|
||||||
m.Run()
|
m.Run()
|
||||||
|
_ = os.Remove("test.db")
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,25 @@ func TestAllocateUploadSlotUnsafePath(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDuplicateUploadSlot(t *testing.T) {
|
||||||
|
|
||||||
|
if allocateUploadSlot(api.AllocateUploadSlotRequest{
|
||||||
|
FileName: "test.png",
|
||||||
|
Token: "testdupe",
|
||||||
|
MaxSize: 100,
|
||||||
|
}).Ok != true {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
if allocateUploadSlot(api.AllocateUploadSlotRequest{
|
||||||
|
FileName: "test.png",
|
||||||
|
Token: "testdupe",
|
||||||
|
MaxSize: 100,
|
||||||
|
}).Ok != false {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func allocateUploadSlot(request api.AllocateUploadSlotRequest) (ar *api.GenericResponse) {
|
func allocateUploadSlot(request api.AllocateUploadSlotRequest) (ar *api.GenericResponse) {
|
||||||
resp := Post("/slot", request)
|
resp := Post("/slot", request)
|
||||||
UnmarshalResponse(resp, &ar)
|
UnmarshalResponse(resp, &ar)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user