forked from ruby-grape/grape-with-roar
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathspline_presenter.rb
33 lines (29 loc) · 965 Bytes
/
spline_presenter.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module Acme
module Api
module Presenters
module SplinePresenter
include Roar::JSON::HAL
include Roar::Hypermedia
include Grape::Roar::Representer
property :uuid, writeable: false, type: String, desc: 'Spline unique ID.'
property :reticulated, type: Grape::API::Boolean, default: false, desc: 'True if spline is reticulated.'
link :self do |opts|
request = Grape::Request.new(opts[:env])
"#{request.base_url}/api/splines/#{uuid}"
end
curies do |opts|
request = Grape::Request.new(opts[:env])
[
name: :images,
href: "#{request.base_url}/docs/splines/images/{rel}",
templated: true
]
end
link 'images:thumbnail' do |opts|
request = Grape::Request.new(opts[:env])
"#{request.base_url}/api/splines/#{uuid}/images/thumbnail.jpg"
end
end
end
end
end