forked from vieter-v/vieter
				
			feat: logs api now also returns id
							parent
							
								
									7b59277931
								
							
						
					
					
						commit
						210508f1ee
					
				|  | @ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
|   repository will be cloned with the default branch | ||||
| * Build containers now explicitely set the PATH variable | ||||
| * Refactor of web framework | ||||
| * API endpoints now return id of newly created entries | ||||
| 
 | ||||
| ### Removed | ||||
| 
 | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ pub fn (c &Client) get_build_log_content(id int) ?string { | |||
| } | ||||
| 
 | ||||
| // add_build_log adds a new build log to the server. | ||||
| pub fn (c &Client) add_build_log(target_id int, start_time time.Time, end_time time.Time, arch string, exit_code int, content string) ?Response<string> { | ||||
| pub fn (c &Client) add_build_log(target_id int, start_time time.Time, end_time time.Time, arch string, exit_code int, content string) ?Response<int> { | ||||
| 	params := { | ||||
| 		'target':    target_id.str() | ||||
| 		'startTime': start_time.unix_time().str() | ||||
|  | @ -48,7 +48,7 @@ pub fn (c &Client) add_build_log(target_id int, start_time time.Time, end_time t | |||
| 		'exitCode':  exit_code.str() | ||||
| 	} | ||||
| 
 | ||||
| 	data := c.send_request_with_body<string>(Method.post, '/api/v1/logs', params, content)? | ||||
| 	data := c.send_request_with_body<int>(Method.post, '/api/v1/logs', params, content)? | ||||
| 
 | ||||
| 	return data | ||||
| } | ||||
|  |  | |||
|  | @ -206,7 +206,7 @@ fn add(conf Config, t &NewTarget) ? { | |||
| 	c := client.new(conf.address, conf.api_key) | ||||
| 	res := c.add_target(t)? | ||||
| 
 | ||||
| 	println("Target added with id $res.data") | ||||
| 	println('Target added with id $res.data') | ||||
| } | ||||
| 
 | ||||
| // remove removes a repository from the server's list. | ||||
|  |  | |||
|  | @ -79,10 +79,14 @@ pub fn (db &VieterDb) get_build_log(id int) ?BuildLog { | |||
| } | ||||
| 
 | ||||
| // add_build_log inserts the given BuildLog into the database. | ||||
| pub fn (db &VieterDb) add_build_log(log BuildLog) { | ||||
| pub fn (db &VieterDb) add_build_log(log BuildLog) int { | ||||
| 	sql db.conn { | ||||
| 		insert log into BuildLog | ||||
| 	} | ||||
| 
 | ||||
| 	inserted_id := db.conn.last_id() as int | ||||
| 
 | ||||
| 	return inserted_id | ||||
| } | ||||
| 
 | ||||
| // delete_build_log delete the BuildLog with the given ID from the database. | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ fn (mut app App) v1_get_logs() web.Result { | |||
| 	} | ||||
| 	logs := app.db.get_build_logs(filter) | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_data_response(logs)) | ||||
| 	return app.json(.ok, new_data_response(logs)) | ||||
| } | ||||
| 
 | ||||
| // v1_get_single_log returns the build log with the given id. | ||||
|  | @ -27,7 +27,7 @@ fn (mut app App) v1_get_logs() web.Result { | |||
| fn (mut app App) v1_get_single_log(id int) web.Result { | ||||
| 	log := app.db.get_build_log(id) or { return app.not_found() } | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_data_response(log)) | ||||
| 	return app.json(.ok, new_data_response(log)) | ||||
| } | ||||
| 
 | ||||
| // v1_get_log_content returns the actual build log file for the given id. | ||||
|  | @ -95,7 +95,8 @@ fn (mut app App) v1_post_log() web.Result { | |||
| 		exit_code: exit_code | ||||
| 	} | ||||
| 
 | ||||
| 	app.db.add_build_log(log) | ||||
| 	// id of newly created log | ||||
| 	log_id := app.db.add_build_log(log) | ||||
| 
 | ||||
| 	repo_logs_dir := os.join_path(app.conf.data_dir, logs_dir_name, target_id.str(), arch) | ||||
| 
 | ||||
|  | @ -122,5 +123,5 @@ fn (mut app App) v1_post_log() web.Result { | |||
| 		return app.status(http.Status.length_required) | ||||
| 	} | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_response('Logs added successfully.')) | ||||
| 	return app.json(.ok, new_data_response(log_id)) | ||||
| } | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ module server | |||
| 
 | ||||
| import web | ||||
| import net.http | ||||
| import web.response { new_data_response, new_response, new_full_response } | ||||
| import web.response { new_data_response, new_response } | ||||
| import db | ||||
| import models { Target, TargetArch, TargetFilter } | ||||
| 
 | ||||
|  | @ -14,7 +14,7 @@ fn (mut app App) v1_get_targets() web.Result { | |||
| 	} | ||||
| 	repos := app.db.get_targets(filter) | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_data_response(repos)) | ||||
| 	return app.json(.ok, new_data_response(repos)) | ||||
| } | ||||
| 
 | ||||
| // v1_get_single_target returns the information for a single target. | ||||
|  | @ -22,7 +22,7 @@ fn (mut app App) v1_get_targets() web.Result { | |||
| fn (mut app App) v1_get_single_target(id int) web.Result { | ||||
| 	repo := app.db.get_target(id) or { return app.not_found() } | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_data_response(repo)) | ||||
| 	return app.json(.ok, new_data_response(repo)) | ||||
| } | ||||
| 
 | ||||
| // v1_post_target creates a new target from the provided query string. | ||||
|  | @ -55,7 +55,7 @@ fn (mut app App) v1_post_target() web.Result { | |||
| fn (mut app App) v1_delete_target(id int) web.Result { | ||||
| 	app.db.delete_target(id) | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_response('Repo removed successfully.')) | ||||
| 	return app.status(.ok) | ||||
| } | ||||
| 
 | ||||
| // v1_patch_target updates a target's data with the given query params. | ||||
|  | @ -69,5 +69,5 @@ fn (mut app App) v1_patch_target(id int) web.Result { | |||
| 		app.db.update_target_archs(id, arch_objs) | ||||
| 	} | ||||
| 
 | ||||
| 	return app.json(http.Status.ok, new_response('Repo updated successfully.')) | ||||
| 	return app.status(.ok) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue