Class: Auphonic::Endpoint

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/auphonic/endpoint.rb

Constant Summary collapse

URL =
'https://auphonic.com'

Instance Method Summary collapse

Constructor Details

#initializeEndpoint

Returns a new instance of Endpoint.



14
15
16
17
18
19
20
21
22
23
# File 'lib/auphonic/endpoint.rb', line 14

def initialize
  @connection ||= Faraday.new(:url => URL) do |faraday|
    faraday.request :multipart
    #faraday.response :logger
    faraday.adapter Faraday.default_adapter
  end
  config = OpenStruct.new(YAML.load(File.read(File.expand_path("~/.auphonic"))))
  credentials = [ config., config.passwd ]
  @connection.basic_auth(*credentials)
end

Instance Method Details

#create_production(data) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/auphonic/endpoint.rb', line 57

def create_production(data)
  url = '/api/productions.json'
  response = @connection.post do |req|
    req.url url
    req.headers['Content-Type'] = 'application/json'
    req.body = data.to_json
  end
  JSON.parse(response.body)['data']
end

#download(url) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/auphonic/endpoint.rb', line 84

def download(url)
  url.sub!(URL, '')
  filename = File.basename(url)
  response = @connection.get(url)
  File.open(filename, 'w') { |f| f.print(response.body) }
  filename
end

#info_algorithmsObject



41
42
43
# File 'lib/auphonic/endpoint.rb', line 41

def info_algorithms
  get('/api/info/algorithms.json')['data']
end

#info_outputfilesObject



45
46
47
# File 'lib/auphonic/endpoint.rb', line 45

def info_outputfiles
  get('/api/info/output_files.json')['data']
end

#info_productionsstatussObject

sic



49
50
51
# File 'lib/auphonic/endpoint.rb', line 49

def info_productionsstatuss # sic
  get('/api/info/production_status.json')['data']
end

#info_servicetypesObject



37
38
39
# File 'lib/auphonic/endpoint.rb', line 37

def info_servicetypes
  get('/api/info/service_types.json')['data']
end

#load_production(uuid) ⇒ Object



53
54
55
# File 'lib/auphonic/endpoint.rb', line 53

def load_production(uuid)
  get("/api/production/#{uuid}.json")['data']
end

#presetsObject



29
30
31
# File 'lib/auphonic/endpoint.rb', line 29

def presets
  get('/api/presets.json')['data']
end

#productionsObject



25
26
27
# File 'lib/auphonic/endpoint.rb', line 25

def productions
  get('/api/productions.json')['data']
end

#servicesObject



33
34
35
# File 'lib/auphonic/endpoint.rb', line 33

def services
  get('/api/services.json')['data']
end

#start_production(uuid) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/auphonic/endpoint.rb', line 75

def start_production(uuid)
  url = "/api/production/#{uuid}/start.json"
  response = @connection.post do |req|
    req.url url
    req.headers['Content-Type'] = 'application/json'
  end
  JSON.parse(response.body)['data']
end

#upload_to_production(uuid, path) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/auphonic/endpoint.rb', line 67

def upload_to_production(uuid, path)
  raise 'Error: uuid missing' if uuid.nil?
  url = "/api/production/#{uuid}/upload.json"
  payload = { input_file: Faraday::UploadIO.new(path, 'audio/basic') }
  response = @connection.post(url, payload)
  JSON.parse(response.body)['data']
end