forked from vieter-v/vieter
				
			Added proper constraint for creating repo
							parent
							
								
									a4a71a2797
								
							
						
					
					
						commit
						08821725f9
					
				|  | @ -16,7 +16,7 @@ pub mut: | ||||||
| 	arch   []string | 	arch   []string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn (mut r GitRepo) patch_from_params(params &map[string]string) ? { | fn (mut r GitRepo) patch_from_params(params map[string]string) { | ||||||
| 	$for field in GitRepo.fields { | 	$for field in GitRepo.fields { | ||||||
| 		if field.name in params { | 		if field.name in params { | ||||||
| 			$if field.typ is string { | 			$if field.typ is string { | ||||||
|  | @ -26,16 +26,22 @@ fn (mut r GitRepo) patch_from_params(params &map[string]string) ? { | ||||||
| 			} $else $if field.typ is []string { | 			} $else $if field.typ is []string { | ||||||
| 				r.$(field.name) = params[field.name].split(',') | 				r.$(field.name) = params[field.name].split(',') | ||||||
| 			} | 			} | ||||||
| 		}else{ |  | ||||||
| 			return error('Missing parameter: ${field.name}.') |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn repo_from_params(params &map[string]string) ?GitRepo { | fn repo_from_params(params map[string]string) ?GitRepo { | ||||||
| 	mut repo := GitRepo{} | 	mut repo := GitRepo{} | ||||||
| 
 | 
 | ||||||
| 	repo.patch_from_params(params) ? | 	// If we're creating a new GitRepo, we want all fields to be present before | ||||||
|  | 	// "patching". | ||||||
|  | 	$for field in GitRepo.fields { | ||||||
|  | 		if field.name !in params { | ||||||
|  | 			return error('Missing parameter: ${field.name}.') | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	repo.patch_from_params(params) | ||||||
| 
 | 
 | ||||||
| 	return repo | 	return repo | ||||||
| } | } | ||||||
|  | @ -115,8 +121,9 @@ fn (mut app App) post_repo() web.Result { | ||||||
| 		return app.text('Unauthorized.') | 		return app.text('Unauthorized.') | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	new_repo := repo_from_params(&app.query) or { | 	new_repo := repo_from_params(app.query) or { | ||||||
| 		return app.server_error(400) | 		app.set_status(400, err.msg) | ||||||
|  | 		return app.ok("") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	id := rand.uuid_v4() | 	id := rand.uuid_v4() | ||||||
|  | @ -190,7 +197,7 @@ fn (mut app App) patch_repo(id string) web.Result { | ||||||
| 		return app.not_found() | 		return app.not_found() | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	repos[id].patch_from_params(&app.query) | 	repos[id].patch_from_params(app.query) | ||||||
| 
 | 
 | ||||||
| 	lock app.git_mutex { | 	lock app.git_mutex { | ||||||
| 		write_repos(app.conf.repos_file, &repos) or { return app.server_error(500) } | 		write_repos(app.conf.repos_file, &repos) or { return app.server_error(500) } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue