Class: Print::PrusaLinkService

Inherits:
Object
  • Object
show all
Defined in:
app/services/print/prusa_link_service.rb

Constant Summary collapse

PROTOCOL =

i18n-tasks-use t("print_hosts.protocols.prusalink")

"prusalink".freeze
INPUT_TYPES =
[Mime[:gcode], Mime[:sl1]].freeze

Instance Method Summary collapse

Constructor Details

#initialize(print_host:) ⇒ PrusaLinkService

Returns a new instance of PrusaLinkService.



10
11
12
# File 'app/services/print/prusa_link_service.rb', line 10

def initialize(print_host:)
  @print_host = print_host
end

Instance Method Details

#ok? ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
# File 'app/services/print/prusa_link_service.rb', line 14

def ok?
  response = connection.get(info_uri, {}, headers)
  Rails.logger.warn(response.inspect) unless response.success?
  response.success?
rescue => ex
  Rails.logger.warn(ex.message)
  false
end

#upload(file:, start_print: true) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
# File 'app/services/print/prusa_link_service.rb', line 23

def upload(file:, start_print: true)
  raise ArgumentError unless file.mime_type.in? INPUT_TYPES
  raise PrintHost::NotReady unless ok?
  response = v1_upload(file: file)
  Rails.logger.warn(response.inspect) unless response.success?
  response.success?
end