package caps import ( "context" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1" "git.dev.alexdunmow.com/block/pluginsdk/plugin" "github.com/google/uuid" ) // mediaStub implements plugin.Media over the media.deposit capability call. type mediaStub struct{ base } var _ plugin.Media = (*mediaStub)(nil) func (s *mediaStub) Deposit(ctx context.Context, deposit plugin.MediaDeposit) (plugin.MediaResult, error) { req := &abiv1.MediaDepositRequest{ Filename: deposit.Filename, Data: deposit.Data, AltText: deposit.AltText, Folder: deposit.Folder, Source: deposit.Source, } if deposit.ID != uuid.Nil { req.Id = deposit.ID.String() } resp := &abiv1.MediaDepositResponse{} if err := s.invoke(ctx, "deposit", req, resp); err != nil { return plugin.MediaResult{}, err } return plugin.MediaResult{ ID: parseUUID(resp.GetId()), Ref: resp.GetRef(), Created: resp.GetCreated(), }, nil }