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