lib/hackerone/client/swag.rb in hackerone-client-0.13.0 vs lib/hackerone/client/swag.rb in hackerone-client-0.14.0
- old
+ new
@@ -1,21 +1,55 @@
module HackerOne
module Client
class Swag
+ include ResourceHelper
delegate :sent, :created_at, to: :attributes
- def initialize(swag)
+ def initialize(swag, program = nil)
@swag = swag
+ @program = program
end
def id
@swag[:id]
end
+ def sent?
+ !!attributes.sent
+ end
+
+ def user
+ if user_relationship = relationships[:user]
+ HackerOne::Client::User.new(user_relationship[:data])
+ end
+ end
+
+ def address
+ if address_relationship = relationships[:address]
+ HackerOne::Client::Address.new(address_relationship[:data])
+ end
+ end
+
+ def mark_as_sent!
+ body = {
+ type: "swag",
+ attributes: {
+ sent: true
+ }
+ }
+
+ response_json = make_put_request("programs/#{@program.id}/swag/#{id}", request_body: body)
+ self.class.new(response_json, @program)
+ end
+
private
def attributes
OpenStruct.new(@swag[:attributes])
+ end
+
+ def relationships
+ @swag[:relationships]
end
end
end
end