| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  | require_relative "request_parser" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   module API3 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |     module Parser | 
					
						
							|  |  |  |       class ProjectParser < RequestParser | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         include Devops::API3::Helpers | 
					
						
							| 
									
										
										
										
											2015-08-03 15:09:04 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |         def projects | 
					
						
							|  |  |  |           fields = [] | 
					
						
							|  |  |  |           if @params.key?("fields") and @params["fields"].is_a?(Array) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |             Devops::Model::Project.list_fields.each do |k| | 
					
						
							| 
									
										
										
										
											2015-08-03 15:09:04 +03:00
										 |  |  |               fields.push k if @params["fields"].include?(k) | 
					
						
							|  |  |  |             end | 
					
						
							|  |  |  |           end | 
					
						
							|  |  |  |           fields | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def archived_projects | 
					
						
							|  |  |  |           @params.include?("archived") | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         def project_servers | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           @params["environment"] | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def project_stacks | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           @params["environment"] | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def create_project | 
					
						
							|  |  |  |           body = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           project = Devops::Model::Project.new(body) | 
					
						
							|  |  |  |           #project.validate! | 
					
						
							|  |  |  |           project | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def users | 
					
						
							|  |  |  |           create_object_from_json_body(Array) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def set_description | 
					
						
							|  |  |  |           body = create_object_from_json_body | 
					
						
							|  |  |  |           body["description"] | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 17:47:11 +03:00
										 |  |  |         def set_project_components | 
					
						
							|  |  |  |           c = create_object_from_json_body(Hash) | 
					
						
							|  |  |  |           raise InvalidRecord.new("'components' key not found") if c["components"].nil? | 
					
						
							|  |  |  |           c | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         def add_environment | 
					
						
							| 
									
										
										
										
											2015-10-05 14:54:47 +03:00
										 |  |  |           body = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           Devops::Model::Environment.new(body) | 
					
						
							| 
									
										
										
										
											2015-10-05 14:54:47 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         def update_environment_field | 
					
						
							| 
									
										
										
										
											2015-08-14 17:47:18 +03:00
										 |  |  |           body = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |           raise InvalidRecord.new("'value' key not found") if body["value"].nil? | 
					
						
							|  |  |  |           body["value"] | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         def update_environment | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |           body = create_object_from_json_body | 
					
						
							|  |  |  | #          rl = check_array(body["run_list"], "Parameter 'run_list' should be an array of string", String, false, true) | 
					
						
							|  |  |  | #          Validators::Helpers::RunList.new(rl).validate! | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           Devops::Model::EnvironmentFactory.create(body) | 
					
						
							| 
									
										
										
										
											2015-08-14 17:47:18 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         def update | 
					
						
							|  |  |  |           body = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | =begin | 
					
						
							| 
									
										
										
										
											2015-09-15 13:06:25 +03:00
										 |  |  |           check_string(body["description"], "Parameter 'description' must be a string", true, true) | 
					
						
							| 
									
										
										
										
											2015-09-15 14:12:39 +03:00
										 |  |  |           rl = check_array(body["run_list"], "Parameter 'run_list' must be an array of string", String, true, true) | 
					
						
							| 
									
										
										
										
											2015-09-15 13:06:25 +03:00
										 |  |  |           Validators::Helpers::RunList.new(rl).validate! unless rl.nil? | 
					
						
							|  |  |  |           #Devops::Model::Project.new(body) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | =end | 
					
						
							| 
									
										
										
										
											2015-09-15 13:06:25 +03:00
										 |  |  |           body | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         def add_category | 
					
						
							|  |  |  |           Devops::Model::Category.new(create_object_from_json_body) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         def delete | 
					
						
							|  |  |  |           body = create_object_from_json_body(Hash, true) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           environment = unless body.nil? | 
					
						
							|  |  |  |             check_string(body["environment"], "Parameter 'environment' should be a not empty string", true) | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |           end | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def project_users | 
					
						
							|  |  |  |           body = create_object_from_json_body | 
					
						
							|  |  |  |           users = check_array(body["users"], "Parameter 'users' must be a not empty array of strings") | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           environment = check_string(body["environment"], "Parameter 'environment' must be a not empty string", true) | 
					
						
							|  |  |  |           return environment, users | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def run_list | 
					
						
							|  |  |  |           list = create_object_from_json_body(Array) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           RunListArrayValidator.validate_list(list) | 
					
						
							|  |  |  |           list | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def deploy | 
					
						
							|  |  |  |           obj = create_object_from_json_body | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           environment = check_string(obj["environment"], "Parameter 'environment' should be a not empty string", true) | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |           servers = check_array(obj["servers"], "Parameter 'servers' should be a not empty array of strings", String, true) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           return environment, servers | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-11-13 17:22:55 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |         def delete_project_env_servers | 
					
						
							| 
									
										
										
										
											2015-11-13 17:22:55 +03:00
										 |  |  |           body = create_object_from_json_body | 
					
						
							|  |  |  |           dry_run = check_boolean(body["dry_run"], "Parameter 'dry_run' must be a boolean") | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           dry_run | 
					
						
							| 
									
										
										
										
											2015-11-13 17:22:55 +03:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |