vweb: migrate all tests and examples to the new syntax
							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