mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
vweb: migrate all tests and examples to the new syntax
This commit is contained in:
parent
3ffdcd8910
commit
2533c706ae
@ -48,7 +48,8 @@ const (
|
||||
too_short_file_limit = 5000
|
||||
// create a .c file for these os's
|
||||
vc_build_oses = [
|
||||
'nix', // all nix based os
|
||||
'nix',
|
||||
/* all nix based os */
|
||||
'windows',
|
||||
]
|
||||
)
|
||||
@ -87,8 +88,8 @@ mut:
|
||||
|
||||
// webhook server
|
||||
struct WebhookServer {
|
||||
pub mut:
|
||||
vweb vweb.Context
|
||||
vweb.Context
|
||||
mut:
|
||||
gen_vc &GenVC
|
||||
}
|
||||
|
||||
@ -171,10 +172,10 @@ pub fn (mut ws WebhookServer) genhook() {
|
||||
ws.gen_vc.generate()
|
||||
// error in generate
|
||||
if ws.gen_vc.gen_error {
|
||||
ws.vweb.json('{status: "failed"}')
|
||||
ws.json('{status: "failed"}')
|
||||
return
|
||||
}
|
||||
ws.vweb.json('{status: "ok"}')
|
||||
ws.json('{status: "ok"}')
|
||||
}
|
||||
|
||||
pub fn (ws &WebhookServer) reset() {
|
||||
@ -209,9 +210,7 @@ fn (mut gen_vc GenVC) generate() {
|
||||
// check if gen_vc dir exists
|
||||
if !os.is_dir(gen_vc.options.work_dir) {
|
||||
// try create
|
||||
os.mkdir(gen_vc.options.work_dir) or {
|
||||
panic(err)
|
||||
}
|
||||
os.mkdir(gen_vc.options.work_dir) or { panic(err) }
|
||||
// still dosen't exist... we have a problem
|
||||
if !os.is_dir(gen_vc.options.work_dir) {
|
||||
gen_vc.logger.error('error creating directory: $gen_vc.options.work_dir')
|
||||
@ -247,12 +246,8 @@ fn (mut gen_vc GenVC) generate() {
|
||||
ts_v := git_log_v.find_between('Date:', '\n').trim_space()
|
||||
ts_vc := git_log_vc.find_between('Date:', '\n').trim_space()
|
||||
// parse time as string to time.Time
|
||||
last_commit_time_v := time.parse(ts_v) or {
|
||||
panic(err)
|
||||
}
|
||||
last_commit_time_vc := time.parse(ts_vc) or {
|
||||
panic(err)
|
||||
}
|
||||
last_commit_time_v := time.parse(ts_v) or { panic(err) }
|
||||
last_commit_time_vc := time.parse(ts_vc) or { panic(err) }
|
||||
// git dates are in users local timezone and v time.parse does not parse
|
||||
// timezones at the moment, so for now get unix timestamp from output also
|
||||
t_unix_v := git_log_v.find_between('Date Unix:', '\n').trim_space().int()
|
||||
|
@ -9,8 +9,7 @@ const (
|
||||
)
|
||||
|
||||
struct App {
|
||||
pub mut:
|
||||
vweb vweb.Context
|
||||
vweb.Context
|
||||
}
|
||||
|
||||
fn main() {
|
||||
@ -19,9 +18,9 @@ fn main() {
|
||||
|
||||
pub fn (mut app App) init_once() {
|
||||
// Arbitary mime type.
|
||||
app.vweb.serve_static('/favicon.ico', 'favicon.ico', 'img/x-icon')
|
||||
app.serve_static('/favicon.ico', 'favicon.ico', 'img/x-icon')
|
||||
// Automatically make available known static mime types found in given directory.
|
||||
app.vweb.handle_static('assets')
|
||||
app.handle_static('assets')
|
||||
// This would make available all known static mime types from current
|
||||
// directory and below.
|
||||
// app.vweb.handle_static('.')
|
||||
@ -41,10 +40,10 @@ pub fn (mut app App) index() {
|
||||
$vweb.html()
|
||||
}
|
||||
|
||||
fn (mut app App) text() {
|
||||
app.vweb.text('Hello, world from vweb!')
|
||||
fn (mut app App) text() vweb.Result {
|
||||
return app.text('Hello, world from vweb!')
|
||||
}
|
||||
|
||||
fn (mut app App) time() {
|
||||
app.vweb.text(time.now().format())
|
||||
fn (mut app App) time() vweb.Result {
|
||||
return app.text(time.now().format())
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
import vweb
|
||||
|
||||
struct App {
|
||||
pub mut:
|
||||
vweb vweb.Context
|
||||
vweb.Context
|
||||
}
|
||||
|
||||
pub fn (mut app App) no_attributes(a string) vweb.Result {
|
||||
@ -13,21 +12,21 @@ pub fn (mut app App) no_attributes(a string) vweb.Result {
|
||||
['/foo/:bar']
|
||||
pub fn (mut app App) foo(a string) vweb.Result {
|
||||
eprintln('foo')
|
||||
app.vweb.html('works')
|
||||
app.html('works')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
// segfault because path taks 0 vars and fcn takes 1 arg
|
||||
['/bar']
|
||||
pub fn (mut app App) bar(a string) vweb.Result {
|
||||
app.vweb.html('works')
|
||||
app.html('works')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
// no segfault, but it shouldnt compile
|
||||
['/cow/:low']
|
||||
pub fn (mut app App) cow() vweb.Result {
|
||||
app.vweb.html('works')
|
||||
app.html('works')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
@ -40,7 +39,7 @@ pub fn (app App) init() {
|
||||
}
|
||||
|
||||
pub fn (mut app App) index() {
|
||||
app.vweb.html('hello')
|
||||
app.html('hello')
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
@ -9,10 +9,9 @@ const (
|
||||
)
|
||||
|
||||
struct App {
|
||||
vweb.Context
|
||||
port int
|
||||
timeout int
|
||||
pub mut:
|
||||
vweb vweb.Context
|
||||
}
|
||||
|
||||
fn exit_after_timeout(timeout_in_ms int) {
|
||||
@ -46,16 +45,16 @@ pub fn (mut app App) init_once() {
|
||||
}
|
||||
|
||||
pub fn (mut app App) index() {
|
||||
app.vweb.text('Welcome to VWeb')
|
||||
app.text('Welcome to VWeb')
|
||||
}
|
||||
|
||||
pub fn (mut app App) simple() vweb.Result {
|
||||
app.vweb.text('A simple result')
|
||||
app.text('A simple result')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
pub fn (mut app App) html_page() vweb.Result {
|
||||
app.vweb.html('<h1>ok</h1>')
|
||||
app.html('<h1>ok</h1>')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
@ -63,35 +62,35 @@ pub fn (mut app App) html_page() vweb.Result {
|
||||
['/:user/settings']
|
||||
pub fn (mut app App) settings(username string) vweb.Result {
|
||||
if username !in known_users {
|
||||
return app.vweb.not_found()
|
||||
return app.not_found()
|
||||
}
|
||||
app.vweb.html('username: $username')
|
||||
app.html('username: $username')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
['/:user/:repo/settings']
|
||||
pub fn (mut app App) user_repo_settings(username string, repository string) vweb.Result {
|
||||
if username !in known_users {
|
||||
return app.vweb.not_found()
|
||||
return app.not_found()
|
||||
}
|
||||
app.vweb.html('username: $username | repository: $repository')
|
||||
app.html('username: $username | repository: $repository')
|
||||
return vweb.Result{}
|
||||
}
|
||||
|
||||
[post]
|
||||
['/json_echo']
|
||||
pub fn (mut app App) json() vweb.Result {
|
||||
app.vweb.set_content_type(app.vweb.req.headers['Content-Type'])
|
||||
return app.vweb.ok(app.vweb.req.data)
|
||||
app.set_content_type(app.req.headers['Content-Type'])
|
||||
return app.ok(app.req.data)
|
||||
}
|
||||
|
||||
pub fn (mut app App) shutdown() vweb.Result {
|
||||
session_key := app.vweb.get_cookie('skey') or { return app.vweb.not_found() }
|
||||
session_key := app.get_cookie('skey') or { return app.not_found() }
|
||||
if session_key != 'superman' {
|
||||
return app.vweb.not_found()
|
||||
return app.not_found()
|
||||
}
|
||||
go app.gracefull_exit()
|
||||
return app.vweb.ok('good bye')
|
||||
return app.ok('good bye')
|
||||
}
|
||||
|
||||
fn (mut app App) gracefull_exit() {
|
||||
|
Loading…
Reference in New Issue
Block a user