123456789101112131415161718192021222324252627282930313233343536 |
- package remotestore
- import (
- "database/sql"
- "errors"
- "github.com/ente-io/museum/ente"
- "github.com/ente-io/museum/pkg/repo/remotestore"
- "github.com/ente-io/museum/pkg/utils/auth"
- "github.com/ente-io/stacktrace"
- "github.com/gin-gonic/gin"
- )
- // Controller is interface for exposing business logic related to for remote store
- type Controller struct {
- Repo *remotestore.Repository
- }
- // Insert of update the key's value
- func (c *Controller) InsertOrUpdate(ctx *gin.Context, request ente.UpdateKeyValueRequest) error {
- userID := auth.GetUserID(ctx.Request.Header)
- return c.Repo.InsertOrUpdate(ctx, userID, request.Key, request.Value)
- }
- func (c *Controller) Get(ctx *gin.Context, req ente.GetValueRequest) (*ente.GetValueResponse, error) {
- userID := auth.GetUserID(ctx.Request.Header)
- value, err := c.Repo.GetValue(ctx, userID, req.Key)
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) && req.DefaultValue != nil {
- return &ente.GetValueResponse{Value: *req.DefaultValue}, nil
- } else {
- return nil, stacktrace.Propagate(err, "")
- }
- }
- return &ente.GetValueResponse{Value: value}, nil
- }
|