123 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require_relative "request_parser"
 | |
| 
 | |
| module Devops
 | |
|   module API3
 | |
|     module Parser
 | |
|       class ProjectParser < RequestParser
 | |
| 
 | |
|         include Devops::API3::Helpers
 | |
| 
 | |
|         def projects
 | |
|           fields = []
 | |
|           if @params.key?("fields") and @params["fields"].is_a?(Array)
 | |
|             Devops::Model::Project.list_fields.each do |k|
 | |
|               fields.push k if @params["fields"].include?(k)
 | |
|             end
 | |
|           end
 | |
|           fields
 | |
|         end
 | |
| 
 | |
|         def archived_projects
 | |
|           @params.include?("archived")
 | |
|         end
 | |
| 
 | |
|         def project_servers
 | |
|           @params["environment"]
 | |
|         end
 | |
| 
 | |
|         def project_stacks
 | |
|           @params["environment"]
 | |
|         end
 | |
| 
 | |
|         def create_project
 | |
|           body = create_object_from_json_body
 | |
|           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"]
 | |
|         end
 | |
| 
 | |
|         def set_project_components
 | |
|           c = create_object_from_json_body(Hash)
 | |
|           raise InvalidRecord.new("'components' key not found") if c["components"].nil?
 | |
|           c
 | |
|         end
 | |
| 
 | |
|         def add_environment
 | |
|           body = create_object_from_json_body
 | |
|           Devops::Model::Environment.new(body)
 | |
|         end
 | |
| 
 | |
|         def update_environment_field
 | |
|           body = create_object_from_json_body
 | |
|           raise InvalidRecord.new("'value' key not found") if body["value"].nil?
 | |
|           body["value"]
 | |
|         end
 | |
| 
 | |
|         def update_environment
 | |
|           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!
 | |
|           Devops::Model::EnvironmentFactory.create(body)
 | |
|         end
 | |
| 
 | |
|         def update
 | |
|           body = create_object_from_json_body
 | |
| =begin
 | |
|           check_string(body["description"], "Parameter 'description' must be a string", true, true)
 | |
|           rl = check_array(body["run_list"], "Parameter 'run_list' must be an array of string", String, true, true)
 | |
|           Validators::Helpers::RunList.new(rl).validate! unless rl.nil?
 | |
|           #Devops::Model::Project.new(body)
 | |
| =end
 | |
|           body
 | |
|         end
 | |
| 
 | |
|         def add_category
 | |
|           Devops::Model::Category.new(create_object_from_json_body)
 | |
|         end
 | |
| 
 | |
|         def delete
 | |
|           body = create_object_from_json_body(Hash, true)
 | |
|           environment = unless body.nil?
 | |
|             check_string(body["environment"], "Parameter 'environment' should be a not empty string", true)
 | |
|           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")
 | |
|           environment = check_string(body["environment"], "Parameter 'environment' must be a not empty string", true)
 | |
|           return environment, users
 | |
|         end
 | |
| 
 | |
|         def run_list
 | |
|           list = create_object_from_json_body(Array)
 | |
|           RunListArrayValidator.validate_list(list)
 | |
|           list
 | |
|         end
 | |
| 
 | |
|         def deploy
 | |
|           obj = create_object_from_json_body
 | |
|           environment = check_string(obj["environment"], "Parameter 'environment' should be a not empty string", true)
 | |
|           servers = check_array(obj["servers"], "Parameter 'servers' should be a not empty array of strings", String, true)
 | |
|           return environment, servers
 | |
|         end
 | |
| 
 | |
|         def delete_project_env_servers
 | |
|           body = create_object_from_json_body
 | |
|           dry_run = check_boolean(body["dry_run"], "Parameter 'dry_run' must be a boolean")
 | |
|           dry_run
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
