documents.go 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package memory
  2. import (
  3. "context"
  4. "excalidraw-complete/core"
  5. "fmt"
  6. "github.com/oklog/ulid/v2"
  7. "github.com/sirupsen/logrus"
  8. )
  9. var savedDocuments = make(map[string]core.Document)
  10. type documentStore struct {
  11. }
  12. func NewDocumentStore() core.DocumentStore {
  13. return &documentStore{}
  14. }
  15. func (s *documentStore) FindID(ctx context.Context, id string) (*core.Document, error) {
  16. log := logrus.WithField("document_id", id)
  17. if val, ok := savedDocuments[id]; ok {
  18. log.Info("Document retrieved successfully")
  19. return &val, nil
  20. }
  21. log.WithField("error", "document not found").Warn("Document with specified ID not found")
  22. return nil, fmt.Errorf("document with id %s not found", id)
  23. }
  24. func (s *documentStore) Create(ctx context.Context, document *core.Document) (string, error) {
  25. id := ulid.Make().String()
  26. savedDocuments[id] = *document
  27. log := logrus.WithFields(logrus.Fields{
  28. "document_id": id,
  29. "data_length": len(document.Data.Bytes()),
  30. })
  31. log.Info("Document created successfully")
  32. return id, nil
  33. }