contrib/tnitter: revamp how the DB is handled
authorAlexis Laferrière <alexis.laf@xymus.net>
Tue, 10 Nov 2015 03:41:38 +0000 (22:41 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Wed, 11 Nov 2015 19:50:15 +0000 (14:50 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

contrib/tnitter/src/action.nit

index fdb718b..d930662 100644 (file)
@@ -22,6 +22,9 @@ import nitcorn
 import model
 import database
 
+# Path to the Sqlite3 database
+fun tnitter_db_path: String do return "tnitter.db"
+
 redef class Session
        # User logged in
        var user: nullable String = null
@@ -31,9 +34,6 @@ end
 class Tnitter
        super Action
 
-       var db_path = "tnitter.db"
-       var db = new DB.open(db_path)
-
        # Header on pages served by this `Action`
        #
        # Keywords to `Text::replace`:
@@ -100,6 +100,8 @@ class Tnitter
                # Error to display on page as a dismissable panel
                var error = null
 
+               var db = new DB.open(tnitter_db_path)
+
                # Login/logout
                if turi == "/login" and request.post_args.keys.has("user") and
                   request.post_args.keys.has("pass") then
@@ -137,6 +139,7 @@ class Tnitter
                                # Post a Tnit!
                                var text = request.post_args["text"]
                                db.post(user, text)
+                               db.close
 
                                # Redirect the user to avoid double posting
                                var response = new HttpResponse(303)
@@ -205,6 +208,7 @@ class Tnitter
 
                # Load the last 16 Tnits
                var posts = db.latest_posts(16)
+               db.close
 
                var html_posts = new Array[String]
                for post in posts do