| 1 | module main |
| 2 | |
| 3 | import veb |
| 4 | import regex |
| 5 | |
| 6 | @['/search'] |
| 7 | pub 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 | |