enhancement: return a drive item from the update share drive item api endpoint

This commit is contained in:
Florian Schade
2024-05-14 10:30:42 +02:00
committed by Ralf Haferkamp
parent 5b4e83c9bf
commit 9e6bf2af3c
2 changed files with 27 additions and 9 deletions
@@ -382,20 +382,27 @@ func (api DrivesDriveItemApi) UpdateDriveItem(w http.ResponseWriter, r *http.Req
request.UpdateMask.Paths = append(request.UpdateMask.Paths, _fieldMaskPathHidden)
},
)
switch {
case err != nil:
break
case len(updatedShares) == 0:
err = ErrNoShares
}
if err != nil {
api.logger.Debug().Err(err).Msg(ErrUpdateShares.Error())
ErrUpdateShares.Render(w, r)
return
}
driveItems, err := api.baseGraphService.CS3ReceivedSharesToDriveItems(r.Context(), updatedShares)
switch {
case err != nil:
break
case len(driveItems) != 1:
err = ErrDriveItemConversion
}
if err != nil {
api.logger.Debug().Err(err).Msg(ErrDriveItemConversion.Error())
ErrDriveItemConversion.Render(w, r)
return
}
render.Status(r, http.StatusOK)
render.JSON(w, r, updatedShares[0])
render.JSON(w, r, driveItems[0])
}
// CreateDriveItem creates a drive item
@@ -699,11 +699,17 @@ var _ = Describe("DrivesDriveItemApi", func() {
Return([]*collaborationv1beta1.ReceivedShare{}, nil).
Once()
baseGraphProvider.
EXPECT().
CS3ReceivedSharesToDriveItems(mock.Anything, mock.Anything).
Return(nil, nil).
Once()
drivesDriveItemApi.UpdateDriveItem(w, r)
Expect(w.Code).To(Equal(http.StatusBadRequest))
jsonData := gjson.Get(w.Body.String(), "error")
Expect(jsonData.Get("code").String() + ": " + jsonData.Get("message").String()).To(Equal(svc.ErrUpdateShares.Error()))
Expect(jsonData.Get("code").String() + ": " + jsonData.Get("message").String()).To(Equal(svc.ErrDriveItemConversion.Error()))
})
It("successfully updates the share", func() {
@@ -744,7 +750,6 @@ var _ = Describe("DrivesDriveItemApi", func() {
EXPECT().
UpdateShares(mock.Anything, mock.Anything, mock.Anything).
RunAndReturn(func(ctx context.Context, shares []*collaborationv1beta1.ReceivedShare, closure svc.UpdateShareClosure) ([]*collaborationv1beta1.ReceivedShare, error) {
updateReceivedShareRequest := &collaborationv1beta1.UpdateReceivedShareRequest{
Share: &collaborationv1beta1.ReceivedShare{
Share: &collaborationv1beta1.Share{
@@ -765,6 +770,12 @@ var _ = Describe("DrivesDriveItemApi", func() {
}).
Once()
baseGraphProvider.
EXPECT().
CS3ReceivedSharesToDriveItems(mock.Anything, mock.Anything).
Return([]libregraph.DriveItem{{}}, nil).
Once()
drivesDriveItemApi.UpdateDriveItem(w, r)
Expect(w.Code).To(Equal(http.StatusOK))
})