class EWorld::ServiceWriter
Constants
- AUTOWIRED
- METHODS
- PACKAGE_NAME
Public Class Methods
write(api_project, ui_project, controllers)
click to toggle source
Responsible for writing all the spring boot @RestController classes. @return void
# File lib/writers/service_writer.rb, line 11 def self.write(api_project, ui_project, controllers) raise RuntimeError, "Expected project type to be: #{Blufin::Projects::TYPE_API_SIMPLE}, instead got: #{api_project[Blufin::Projects::TYPE]}" unless api_project[Blufin::Projects::TYPE] == Blufin::Projects::TYPE_API_SIMPLE raise RuntimeError, "Expected project type to be: #{Blufin::Projects::TYPE_QUASAR}, instead got: #{ui_project[Blufin::Projects::TYPE]}" unless ui_project[Blufin::Projects::TYPE] == Blufin::Projects::TYPE_QUASAR @generated = [] @overwritten = [] @project_path = Blufin::Projects::get_project_path(api_project[Blufin::Projects::PROJECT_ID]) @project_path_api = Blufin::Projects::get_project_path(api_project[Blufin::Projects::PROJECT_ID], true) @project_path_ui = Blufin::Projects::get_project_path(ui_project[Blufin::Projects::PROJECT_ID], true) @transient_data_api = api_project[Blufin::Projects::TRANSIENT_DATA] @transient_data_ui = ui_project[Blufin::Projects::TRANSIENT_DATA] @service_path = "#{EWorld::BaseWriter::get_java_path_for(@project_path, @transient_data_api['ServicePath'])}/#{PACKAGE_NAME}" # Loop controllers. controllers.each do |clazz, data| write_java_service(clazz, data) write_axios_service(clazz, data) end return @generated, @overwritten end
Private Class Methods
write_axios_service(clazz, data)
click to toggle source
Write Axios services. @return void
# File lib/writers/service_writer.rb, line 98 def self.write_axios_service(clazz, data) # TODO - Overwrite Axios Service. end
write_java_service(clazz, data)
click to toggle source
Write Java services. @return void
# File lib/writers/service_writer.rb, line 37 def self.write_java_service(clazz, data) file = "#{@service_path}/#{clazz}Service.java" methods = {} # TODO NOW - Here we need to parse in the stuff from the java file scanner. autowired_output = '' methods_output = '' if data.has_key?('EndPoints') && data['EndPoints'].is_a?(Array) methods_output = "\n" data['EndPoints'].each do |end_point| method = end_point['Method'].downcase method = method[0].upcase + method[1..-1] path = end_point['Path'].downcase camel_case = Blufin::Strings::snake_case_to_camel_case(path.gsub('-', '_')) method_title = "#{method.downcase}#{camel_case}" if methods.has_key?(method_title) # TODO - Must scan file here ... else methods_output += <<TEMPLATE public Object #{method_title}() { return null; } TEMPLATE end end end methods.each do |method| end content = <<TEMPLATE package #{PACKAGE}.core.#{PACKAGE_NAME}; import gov.hi.dhs.fmm.lib.rest.request.AbstractService; import org.springframework.stereotype.Service; @Service public class #{CLASS}Service extends AbstractService {#{AUTOWIRED}#{METHODS}} TEMPLATE content = content.gsub(AUTOWIRED, autowired_output) content = content.gsub(METHODS, methods_output) content = content.gsub(PACKAGE, @transient_data_api['Package']) content = content.gsub(CLASS, clazz) Blufin::Files::write_file_java(file, Blufin::Arrays::convert_string_to_line_array(content), nil, false) end