aboutsummaryrefslogtreecommitdiffhomepage
path: root/storage/enclosure.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2017-11-19 21:10:04 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net>2017-11-19 22:01:46 -0800
commit8ffb773f43c8dc54801ca1d111854e7e881c93c9 (patch)
tree38133a2fc612597a75fed1d13e5b4042f58a2b7e /storage/enclosure.go
First commit
Diffstat (limited to 'storage/enclosure.go')
-rw-r--r--storage/enclosure.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/storage/enclosure.go b/storage/enclosure.go
new file mode 100644
index 0000000..ac85cb7
--- /dev/null
+++ b/storage/enclosure.go
@@ -0,0 +1,68 @@
+// Copyright 2017 Frédéric Guillot. All rights reserved.
+// Use of this source code is governed by the Apache 2.0
+// license that can be found in the LICENSE file.
+
+package storage
+
+import (
+ "fmt"
+ "github.com/miniflux/miniflux2/model"
+)
+
+func (s *Storage) GetEnclosures(entryID int64) (model.EnclosureList, error) {
+ query := `SELECT
+ id, user_id, entry_id, url, size, mime_type
+ FROM enclosures
+ WHERE entry_id = $1 ORDER BY id ASC`
+
+ rows, err := s.db.Query(query, entryID)
+ if err != nil {
+ return nil, fmt.Errorf("Unable to get enclosures: %v", err)
+ }
+ defer rows.Close()
+
+ enclosures := make(model.EnclosureList, 0)
+ for rows.Next() {
+ var enclosure model.Enclosure
+ err := rows.Scan(
+ &enclosure.ID,
+ &enclosure.UserID,
+ &enclosure.EntryID,
+ &enclosure.URL,
+ &enclosure.Size,
+ &enclosure.MimeType,
+ )
+
+ if err != nil {
+ return nil, fmt.Errorf("Unable to fetch enclosure row: %v", err)
+ }
+
+ enclosures = append(enclosures, &enclosure)
+ }
+
+ return enclosures, nil
+}
+
+func (s *Storage) CreateEnclosure(enclosure *model.Enclosure) error {
+ query := `
+ INSERT INTO enclosures
+ (url, size, mime_type, entry_id, user_id)
+ VALUES
+ ($1, $2, $3, $4, $5)
+ RETURNING id
+ `
+ err := s.db.QueryRow(
+ query,
+ enclosure.URL,
+ enclosure.Size,
+ enclosure.MimeType,
+ enclosure.EntryID,
+ enclosure.UserID,
+ ).Scan(&enclosure.ID)
+
+ if err != nil {
+ return fmt.Errorf("Unable to create enclosure: %v", err)
+ }
+
+ return nil
+}