Skip to content

Commit

Permalink
Implements follow link from history
Browse files Browse the repository at this point in the history
  • Loading branch information
jollheef committed Jul 25, 2016
1 parent 1599077 commit fd1e141
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
13 changes: 11 additions & 2 deletions commands/commands.go
Expand Up @@ -126,8 +126,17 @@ func Get(db *sql.DB, url string) {
fmt.Println(text)
}

func Link(db *sql.DB, linkID int64) {
url, err := storage.GetLink(db, linkID)
func Link(db *sql.DB, linkID int64, fromHistory bool) {

var url string
var err error

if fromHistory {
url, err = storage.GetHistoryUrl(db, linkID)
} else {
url, err = storage.GetLink(db, linkID)
}

if err != nil {
panic(err)
}
Expand Down
7 changes: 4 additions & 3 deletions main.go
Expand Up @@ -19,8 +19,9 @@ var (
get = kingpin.Command("get", "Get url")
getUrl = get.Arg("url", "Url").Required().String()

link = kingpin.Command("link", "Get link")
linkNo = link.Arg("no", "Number").Required().Int64()
link = kingpin.Command("link", "Get link")
linkNo = link.Arg("no", "Number").Required().Int64()
linkFromHistory = link.Flag("history", "Item from history").Bool()

historyList = kingpin.Command("history", "List history")
historyListItems = historyList.Arg("items", "Amount of items").Int64()
Expand All @@ -38,7 +39,7 @@ func main() {
case "get":
commands.Get(db, *getUrl)
case "link":
commands.Link(db, *linkNo)
commands.Link(db, *linkNo, *linkFromHistory)
case "history":
commands.History(db, *historyListItems, 20, *historyListAll)
}
Expand Down
12 changes: 12 additions & 0 deletions storage/storage.go
Expand Up @@ -109,3 +109,15 @@ func GetHistory(db *sql.DB) (history []HistoryItem, err error) {

return
}

func GetHistoryUrl(db *sql.DB, historyID int64) (url string, err error) {
stmt, err := db.Prepare("SELECT `url` FROM `history` WHERE id=$1;")
if err != nil {
return
}
defer stmt.Close()

err = stmt.QueryRow(historyID).Scan(&url)

return
}

0 comments on commit fd1e141

Please sign in to comment.