mirror of
https://github.com/simon987/ws_bucket.git
synced 2025-04-10 14:06:46 +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
|
||||
}
|
||||
|
||||
api.allocateUploadSlot(req)
|
||||
err = api.allocateUploadSlot(req)
|
||||
|
||||
Json(GenericResponse{
|
||||
Ok: true,
|
||||
}, ctx)
|
||||
if err == nil {
|
||||
Json(GenericResponse{
|
||||
Ok: true,
|
||||
}, ctx)
|
||||
} else {
|
||||
Json(GenericResponse{
|
||||
Ok: false,
|
||||
Message: err.Error(),
|
||||
}, ctx)
|
||||
}
|
||||
}
|
||||
|
||||
func (api *WebApi) Upload(ctx *fasthttp.RequestCtx) {
|
||||
@ -178,7 +185,7 @@ func (api *WebApi) ReadUploadSlot(ctx *fasthttp.RequestCtx) {
|
||||
mu.(*sync.RWMutex).RUnlock()
|
||||
}
|
||||
|
||||
func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) {
|
||||
func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) error {
|
||||
|
||||
slot := &UploadSlot{
|
||||
MaxSize: req.MaxSize,
|
||||
@ -190,5 +197,5 @@ func (api *WebApi) allocateUploadSlot(req *AllocateUploadSlotRequest) {
|
||||
"slot": 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/dialects/sqlite"
|
||||
"github.com/simon987/ws_bucket/api"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
@ -22,4 +23,5 @@ func TestMain(m *testing.M) {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
|
||||
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) {
|
||||
resp := Post("/slot", request)
|
||||
UnmarshalResponse(resp, &ar)
|
||||
|
Loading…
x
Reference in New Issue
Block a user