documents.go 647 B

12345678910111213141516171819202122232425262728293031
  1. package memory
  2. import (
  3. "context"
  4. "excalidraw-backend/core"
  5. "fmt"
  6. "github.com/oklog/ulid/v2"
  7. )
  8. var savedDocuments = make(map[string]core.Document)
  9. type documentStore struct {
  10. }
  11. func NewDocumentStore() core.DocumentStore {
  12. return &documentStore{}
  13. }
  14. func (s *documentStore) FindID(ctx context.Context, id string) (*core.Document, error) {
  15. if val, ok := savedDocuments[id]; ok {
  16. return &val, nil
  17. }
  18. return nil, fmt.Errorf("document with id %s not found", id)
  19. }
  20. func (s *documentStore) Create(ctx context.Context, document *core.Document) (string, error) {
  21. id := ulid.Make().String()
  22. savedDocuments[id] = *document
  23. return id, nil
  24. }