48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			V
		
	
	
| module client
 | |
| 
 | |
| import models { BuildLog, BuildLogFilter }
 | |
| import web.response { Response }
 | |
| import time
 | |
| 
 | |
| // get_build_logs returns all build logs.
 | |
| pub fn (c &Client) get_build_logs(filter BuildLogFilter) ![]BuildLog {
 | |
| 	params := models.params_from(filter)
 | |
| 	data := c.send_request[[]BuildLog](.get, '/api/v1/logs', params)!
 | |
| 
 | |
| 	return data.data
 | |
| }
 | |
| 
 | |
| // get_build_log returns a specific build log.
 | |
| pub fn (c &Client) get_build_log(id int) !BuildLog {
 | |
| 	data := c.send_request[BuildLog](.get, '/api/v1/logs/${id}', {})!
 | |
| 
 | |
| 	return data.data
 | |
| }
 | |
| 
 | |
| // get_build_log_content returns the contents of the build log file.
 | |
| pub fn (c &Client) get_build_log_content(id int) !string {
 | |
| 	data := c.send_request_raw_response(.get, '/api/v1/logs/${id}/content', {}, '')!
 | |
| 
 | |
| 	return data
 | |
| }
 | |
| 
 | |
| // 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[int] {
 | |
| 	params := {
 | |
| 		'target':    target_id.str()
 | |
| 		'startTime': start_time.unix_time().str()
 | |
| 		'endTime':   end_time.unix_time().str()
 | |
| 		'arch':      arch
 | |
| 		'exitCode':  exit_code.str()
 | |
| 	}
 | |
| 
 | |
| 	data := c.send_request_with_body[int](.post, '/api/v1/logs', params, content)!
 | |
| 
 | |
| 	return data
 | |
| }
 | |
| 
 | |
| // remove_build_log removes the build log with the given id from the server.
 | |
| pub fn (c &Client) remove_build_log(id int) ! {
 | |
| 	c.send_request[string](.delete, '/api/v1/logs/${id}', {})!
 | |
| }
 |