aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/vweb/vweb_app_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/old/vlib/vweb/vweb_app_test.v')
-rw-r--r--v_windows/v/old/vlib/vweb/vweb_app_test.v63
1 files changed, 63 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/vweb/vweb_app_test.v b/v_windows/v/old/vlib/vweb/vweb_app_test.v
new file mode 100644
index 0000000..492bdf4
--- /dev/null
+++ b/v_windows/v/old/vlib/vweb/vweb_app_test.v
@@ -0,0 +1,63 @@
+module main
+
+import vweb
+import time
+import sqlite
+
+struct App {
+ vweb.Context
+pub mut:
+ db sqlite.DB [server_var]
+ user_id string
+}
+
+struct Article {
+ id int
+ title string
+ text string
+}
+
+fn test_a_vweb_application_compiles() {
+ go fn () {
+ time.sleep(2 * time.second)
+ exit(0)
+ }()
+ vweb.run(&App{}, 18081)
+}
+
+pub fn (mut app App) init_server() {
+ app.db = sqlite.connect('blog.db') or { panic(err) }
+ app.db.create_table('article', [
+ 'id integer primary key',
+ "title text default ''",
+ "text text default ''",
+ ])
+}
+
+pub fn (mut app App) before_request() {
+ app.user_id = app.get_cookie('id') or { '0' }
+}
+
+['/new_article'; post]
+pub fn (mut app App) new_article() vweb.Result {
+ title := app.form['title']
+ text := app.form['text']
+ if title == '' || text == '' {
+ return app.text('Empty text/title')
+ }
+ article := Article{
+ title: title
+ text: text
+ }
+ println('posting article')
+ println(article)
+ sql app.db {
+ insert article into Article
+ }
+
+ return app.redirect('/')
+}
+
+fn (mut app App) time() {
+ app.text(time.now().format())
+}