diff options
Diffstat (limited to 'CacheDatabase.go')
-rw-r--r-- | CacheDatabase.go | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/CacheDatabase.go b/CacheDatabase.go index 93b3443..29bd4a0 100644 --- a/CacheDatabase.go +++ b/CacheDatabase.go @@ -278,37 +278,40 @@ func WriteObjectReplyToCache(db *sql.DB, obj ObjectBase) { } func WriteObjectReplyCache(db *sql.DB, obj ObjectBase) { - - for _, e := range obj.Replies.OrderedItems { - query := `select inreplyto from cachereplies where id=$1` + if obj.Replies != nil { + for _, e := range obj.Replies.OrderedItems { - rows, err := db.Query(query, obj.Id) + query := `select inreplyto from cachereplies where id=$1` - CheckError(err, "error selecting obj id cache reply") + rows, err := db.Query(query, obj.Id) - var inreplyto string - defer rows.Close() - rows.Next() - rows.Scan(&inreplyto) + CheckError(err, "error selecting obj id cache reply") - if inreplyto != "" { - return - } - - query = `insert into cachereplies (id, inreplyto) values ($1, $2)` + var inreplyto string + defer rows.Close() + rows.Next() + rows.Scan(&inreplyto) - _, err = db.Exec(query, e.Id, obj.Id) - - if err != nil{ - fmt.Println("error inserting replies cache") - panic(err) - } + if inreplyto != "" { + return + } + + query = `insert into cachereplies (id, inreplyto) values ($1, $2)` - if !IsObjectLocal(db, e.Id) { - WriteObjectToCache(db, e) - } + _, err = db.Exec(query, e.Id, obj.Id) + + if err != nil{ + fmt.Println("error inserting replies cache") + panic(err) + } + if !IsObjectLocal(db, e.Id) { + WriteObjectToCache(db, e) + } + + } + return } } |