-/*
-func handleApp(w http.ResponseWriter, r *http.Request) {
- fmt.Println("handleApp():", r.URL.Path)
+// Download a book, based on the path stored in the DB
+func handleBook(w http.ResponseWriter, r *http.Request) {
+ path := r.URL.Path[1:]
+ tok := strings.Split(path, "/")
+ if 2 != len(tok) {
+ fmt.Fprintln(w, "Unexpected path for book download:", path)
+ return
+ }
+
+ bookId, err := strconv.Atoi(tok[1])
+ if (nil != err) || (0 == bookId) {
+ fmt.Fprintln(w, "Invalid id for book download:", path, err)
+ return
+ }
+
+ bookPath := queryBookPathById(bookId)
+ if 0 == len(bookPath) {
+ fmt.Fprintln(w, "No book for ID:", bookId)
+ return
+ }
+
+ bookFileName := filepath.Base(bookPath)