32 lines
614 B
Go
32 lines
614 B
Go
|
package share
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"forge.cadoles.com/arcad/edge/pkg/app"
|
||
|
"forge.cadoles.com/arcad/edge/pkg/storage/share"
|
||
|
"github.com/pkg/errors"
|
||
|
)
|
||
|
|
||
|
type GetResourceArgs struct {
|
||
|
Origin app.ID
|
||
|
ResourceID share.ResourceID
|
||
|
}
|
||
|
|
||
|
type GetResourceReply struct {
|
||
|
Resource *SerializableResource
|
||
|
}
|
||
|
|
||
|
func (s *Service) GetResource(ctx context.Context, args GetResourceArgs, reply *GetResourceReply) error {
|
||
|
resource, err := s.store.GetResource(ctx, args.Origin, args.ResourceID)
|
||
|
if err != nil {
|
||
|
return errors.WithStack(err)
|
||
|
}
|
||
|
|
||
|
*reply = GetResourceReply{
|
||
|
Resource: FromResource(resource),
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|