Add navigation
This commit is contained in:
@@ -133,3 +133,43 @@ func ArticleByID(store *Store, ID int, slug string) (article model.DisplayArticl
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func PreviousAndNextArticleUrlByID(store *Store, ID int) (nextUrl string, previousUrl string, err error) {
|
||||
|
||||
nextResult, previousResult := "#", "#"
|
||||
query, err := store.Prepare(`
|
||||
select id,title, content, slug, original_url, source_id, created_at from articles where id = $1;
|
||||
`)
|
||||
if err != nil {
|
||||
return nextResult, previousResult, err
|
||||
}
|
||||
defer query.Close()
|
||||
|
||||
row := query.QueryRow(ID - 1)
|
||||
if err != nil {
|
||||
return nextResult, previousResult, err
|
||||
}
|
||||
|
||||
r := model.DisplayArticle{}
|
||||
content := ""
|
||||
err = row.Scan(&r.ID, &r.Title, &content, &r.Slug, &r.OriginalUrl, &r.SourceId, &r.CreatedAt)
|
||||
if err != nil {
|
||||
return nextResult, previousResult, err
|
||||
}
|
||||
|
||||
previousResult = fmt.Sprintf("/%d/%s", r.ID, r.Slug)
|
||||
|
||||
row = query.QueryRow(ID + 1)
|
||||
if err != nil {
|
||||
return nextResult, previousResult, err
|
||||
}
|
||||
|
||||
content = ""
|
||||
err = row.Scan(&r.ID, &r.Title, &content, &r.Slug, &r.OriginalUrl, &r.SourceId, &r.CreatedAt)
|
||||
if err != nil {
|
||||
return nextResult, previousResult, err
|
||||
}
|
||||
nextResult = fmt.Sprintf("/%d/%s", r.ID, r.Slug)
|
||||
|
||||
return nextResult, previousResult, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user