Class: ApiMaker::GenerateReactNativeApiService

Inherits:
ApplicationService
  • Object
show all
Defined in:
app/services/api_maker/generate_react_native_api_service.rb

Instance Method Summary collapse

Methods inherited from ApplicationService

#api_maker_json

Instance Method Details

#check_if_root_folder_definedObject



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_modelObject



37
38
39
40
41
42
43
44
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 37

def copy_base_model
  files = %w[
    devise.js event-connection.jsx
  ]
  path = File.join(__dir__, "..", "..", "..", "lib", "api_maker", "javascript")

  copy_base_files(files, path, root_folder)
end

#create_root_folderObject



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

#model_file(model) ⇒ Object



28
29
30
31
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 28

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_serviceObject



24
25
26
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 24

def model_generator_service
  @model_generator_service ||= ApiMaker::ModelsGeneratorService.new
end

#model_pathObject



33
34
35
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 33

def model_path
  @model_path ||= File.join(root_folder, "models")
end

#performObject



2
3
4
5
6
7
8
# File 'app/services/api_maker/generate_react_native_api_service.rb', line 2

def perform
  check_if_root_folder_defined
  create_root_folder
  create_model_files

  succeed!
end

#root_folderObject



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