ggdgsdbsdbbb / search_routes.v
28 lines · 22 sloc · 567 bytes · a449238961bbd5f9081831ef9db1ac936909a3e8
Raw
1module main
2
3import veb
4import regex
5
6@['/search']
7pub fn (mut app App) search() veb.Result {
8 query := ctx.query['query']
9 search_type := if 'type' in ctx.query { ctx.query['type'] } else { 'repos' }
10 sanitize_query := r'[a-zA-z0-9]+'
11 mut re := regex.regex_opt(sanitize_query) or { panic(err) }
12
13 valid_query := re.find_all_str(query).join(' ')
14
15 repos := if search_type == 'repos' {
16 app.search_public_repos(valid_query)
17 } else {
18 []Repo{}
19 }
20
21 users := if search_type == 'users' {
22 app.search_users(valid_query)
23 } else {
24 []User{}
25 }
26
27 return $veb.html()
28}
29