Add aggressive linting
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
2022-01-24 20:25:52 +01:00
parent 763d691b6c
commit e7b0c5fa33
18 changed files with 188 additions and 32 deletions

View File

@@ -7,13 +7,13 @@ import (
type File struct {
ID string `json:"id"`
OriginalFilename string `json:"original_filename"`
MaxViews uint `json:"max_views"`
ExpiresOn time.Time `json:"expires_on"`
OriginalFilename string `json:"originalFilename"`
MaxViews uint `json:"maxViews"`
ExpiresOn time.Time `json:"expiresOn"`
Body io.ReadCloser
FileSize int64 `json:"file_size"`
FileSize int64 `json:"fileSize"`
}
type FileStore interface {

View File

@@ -34,6 +34,7 @@ func (s *FSFileStore) Store(f *File) error {
}
path := filepath.Join(s.dir, f.ID)
dst, err := os.Create(path)
if err != nil {
return err
@@ -44,12 +45,15 @@ func (s *FSFileStore) Store(f *File) error {
if err != nil {
return err
}
s.metadata[f.ID] = metadata
s.metadata[f.ID].FileSize = n
if err := s.writeMetadata(); err != nil {
delete(s.metadata, f.ID)
return err
}
return nil
}
@@ -60,11 +64,14 @@ func (s *FSFileStore) Get(id string) (*File, error) {
}
path := filepath.Join(s.dir, id)
f, err := os.Open(path)
if err != nil {
return nil, err
}
metadata.Body = f
return metadata, nil
}
@@ -73,20 +80,24 @@ func (s *FSFileStore) Delete(id string) error {
if err := os.Remove(path); err != nil {
return err
}
delete(s.metadata, id)
return nil
}
func (s *FSFileStore) List() ([]string, error) {
var results []string
results := make([]string, 0, len(s.metadata))
for k := range s.metadata {
results = append(results, k)
}
return results, nil
}
func (s *FSFileStore) writeMetadata() error {
path := filepath.Join(s.dir, "metadata.json")
f, err := os.Create(path)
if err != nil {
return err
@@ -97,11 +108,13 @@ func (s *FSFileStore) writeMetadata() error {
if err := encoder.Encode(s.metadata); err != nil {
return err
}
return nil
}
func (s *FSFileStore) readMetadata() error {
path := filepath.Join(s.dir, "metadata.json")
f, err := os.Open(path)
if err != nil {
// TODO: Handle errors better
@@ -113,5 +126,6 @@ func (s *FSFileStore) readMetadata() error {
if err := decoder.Decode(&s.metadata); err != nil {
return err
}
return nil
}

View File

@@ -29,7 +29,6 @@ func NewMemoryFileStore() *MemoryFileStore {
}
func (s *MemoryFileStore) Store(f *File) error {
data := &fileData{
ID: f.ID,
MaxViews: f.MaxViews,
@@ -45,6 +44,7 @@ func (s *MemoryFileStore) Store(f *File) error {
defer s.lock.Unlock()
s.data[f.ID] = data
return err
}
@@ -56,6 +56,7 @@ func (s *MemoryFileStore) Get(id string) (*File, error) {
if !ok {
return nil, fmt.Errorf("no such item")
}
f := &File{
ID: fd.ID,
MaxViews: fd.MaxViews,
@@ -70,17 +71,21 @@ func (s *MemoryFileStore) Get(id string) (*File, error) {
func (s *MemoryFileStore) Delete(id string) error {
s.lock.Lock()
defer s.lock.Unlock()
delete(s.data, id)
return nil
}
func (s *MemoryFileStore) List() ([]string, error) {
var ids []string
ids := make([]string, 0, len(s.data))
s.lock.RLock()
defer s.lock.RUnlock()
for id := range s.data {
ids = append(ids, id)
}
return ids, nil
}