Class: Snov::FakeClient

Inherits:
Object
  • Object
show all
Defined in:
lib/snov/fake_client.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_folderObject



22
23
24
# File 'lib/snov/fake_client.rb', line 22

def self.default_folder
  "#{__dir__}/fake_client"
end

.folderObject



14
15
16
# File 'lib/snov/fake_client.rb', line 14

def self.folder
  @folder || default_folder
end

.folder=(val) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/snov/fake_client.rb', line 3

def self.folder=(val)
  @folder = val
  FileUtils.mkdir_p(@folder)
  ["post_v1_get-profile-by-email", "get_v2_domain-emails-with-info", "post_v1_get-emails-from-url",
   "post_v1_get-prospects-by-email", "post_v1_prospect-list", "get_v1_get-user-lists"].each do |sub_folder|
    next if File.exist?("#{@folder}/#{sub_folder}")

    FileUtils.cp_r "#{default_folder}/#{sub_folder}", @folder
  end
end

.reset_folderObject



18
19
20
# File 'lib/snov/fake_client.rb', line 18

def self.reset_folder
  @folder = nil
end

Instance Method Details

#get(path, payload_hash = {}) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/snov/fake_client.rb', line 26

def get(path, payload_hash = {})
  data = File.read(filename("get", path, payload_hash))
  MultiJson.load(data)
rescue Errno::ENOENT
  data = File.read(filename("get", path, 'not_found' => 'true'))
  MultiJson.load(data)
end

#post(path, payload_hash = {}) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/snov/fake_client.rb', line 34

def post(path, payload_hash = {})
  file_loc = filename("post", path, payload_hash)
  data = File.read(file_loc)
  MultiJson.load(data)
rescue Errno::ENOENT => e
  file = filename("post", path, 'not_found' => 'true')
  if File.exist?(file)
    MultiJson.load(File.read(file)).merge('message' => "no file found at #{file_loc}")
  else
    raise Snov::Client::BadRequest, e.message
  end
end