Class: ApiMaker::GenerateReactNativeApiService
- Inherits:
-
ApplicationService
- Object
- ServicePattern::Service
- ApplicationService
- ApiMaker::GenerateReactNativeApiService
- Defined in:
- app/services/api_maker/generate_react_native_api_service.rb
Instance Method Summary collapse
- #check_if_root_folder_defined ⇒ Object
- #copy_base_model ⇒ Object
- #create_model_files ⇒ Object
- #create_root_folder ⇒ Object
- #execute ⇒ Object
- #model_file(model) ⇒ Object
- #model_generator_service ⇒ Object
- #model_path ⇒ Object
- #root_folder ⇒ Object
Methods inherited from ApplicationService
Instance Method Details
#check_if_root_folder_defined ⇒ Object
14 15 16 17 18 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 14 def check_if_root_folder_defined raise "No root folder detected" if root_folder.blank? Dir.mkdir(model_path) unless Dir.exist?(model_path) end |
#copy_base_model ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 51 def copy_base_model files = %w[ api.js base-model.js cable-connection-pool.js cable-subscription.js cable-subscription-pool.js collection.js commands-pool.js devise.js event-listener.jsx error-logger.js form-data-to-object.js logger.js model-name.js models-response-reader.js result.js event-connection.jsx ] path = File.join(__dir__, "..", "..", "..", "lib", "api_maker", "javascript") copy_base_files(files, path, root_folder) end |
#create_model_files ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 24 def create_model_files model_generator_service.models.each do |model| next if model_generator_service.ignore_model?(model) model_content_response = ApiMaker::ModelContentGeneratorService.execute!(model: model) if model_content_response.success? File.open(model_file(model), "w") { |fp| fp.write(model_content_response.result) } else puts model_content_response.errors.join(". ") end end end |
#create_root_folder ⇒ Object
20 21 22 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 20 def create_root_folder Dir.mkdir(root_folder) unless Dir.exist?(root_folder) end |
#execute ⇒ Object
2 3 4 5 6 7 8 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 2 def execute check_if_root_folder_defined create_root_folder create_model_files ServicePattern::Response.new(success: true) end |
#model_file(model) ⇒ Object
42 43 44 45 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 42 def model_file(model) resource_class = ApiMaker::MemoryStorage.current.resource_for_model(model) File.join(model_path, "#{resource_class.short_name.underscore.dasherize}.js") end |
#model_generator_service ⇒ Object
38 39 40 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 38 def model_generator_service @model_generator_service ||= ApiMaker::ModelsGeneratorService.new end |
#model_path ⇒ Object
47 48 49 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 47 def model_path @model_path ||= File.join(root_folder, "models") end |
#root_folder ⇒ Object
10 11 12 |
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 10 def root_folder @root_folder ||= ApiMaker::Configuration.current.react_native_path end |