Initial commit

This commit is contained in:
2021-12-03 23:04:09 +01:00
commit 85fd8de5cb
21 changed files with 1681 additions and 0 deletions

53
store/memory.go Normal file
View File

@@ -0,0 +1,53 @@
package store
import (
"sync"
"gitea.benny.dog/torjus/ezshare/pb"
"github.com/google/uuid"
)
var _ FileStore = &MemoryFileStore{}
type MemoryFileStore struct {
filesLock sync.RWMutex
files map[string]*pb.File
}
func NewMemoryFileStore() *MemoryFileStore {
return &MemoryFileStore{files: make(map[string]*pb.File)}
}
func (s *MemoryFileStore) GetFile(id string) (*pb.File, error) {
s.filesLock.RLock()
defer s.filesLock.RUnlock()
if file, ok := s.files[id]; ok {
return file, nil
}
return nil, ErrNoSuchFile
}
func (s *MemoryFileStore) StoreFile(file *pb.File) (string, error) {
s.filesLock.Lock()
defer s.filesLock.Unlock()
id := uuid.Must(uuid.NewRandom()).String()
file.FileId = id
s.files[id] = file
return id, nil
}
func (s *MemoryFileStore) DeleteFile(id string) error {
s.filesLock.Lock()
defer s.filesLock.Unlock()
if _, ok := s.files[id]; !ok {
return ErrNoSuchFile
}
delete(s.files, id)
return nil
}

15
store/store.go Normal file
View File

@@ -0,0 +1,15 @@
package store
import (
"fmt"
"gitea.benny.dog/torjus/ezshare/pb"
)
var ErrNoSuchFile = fmt.Errorf("no such file")
type FileStore interface {
GetFile(id string) (*pb.File, error)
StoreFile(file *pb.File) (string, error)
DeleteFile(id string) error
}