diff --git a/lib/ribose.rb b/lib/ribose.rb index a1f178a..676dff2 100644 --- a/lib/ribose.rb +++ b/lib/ribose.rb @@ -28,6 +28,7 @@ require "ribose/profile" require "ribose/wiki" require "ribose/member_role" +require "ribose/wiki_increment" module Ribose def self.root diff --git a/lib/ribose/wiki_increment.rb b/lib/ribose/wiki_increment.rb new file mode 100644 index 0000000..6720ee0 --- /dev/null +++ b/lib/ribose/wiki_increment.rb @@ -0,0 +1,33 @@ +module Ribose + class WikiIncrement < Ribose::Base + include Ribose::Actions::Create + + # Create wiki increments + # + # @param space_id [String] The space UUID + # @param wiki_id [String] The wiki page UUID + # @param optinons [Hash] Query parametars as Hash + # @return [Sawyer::Resources] New wiki increment + # + def self.create(space_id:, wiki_id:, **attributes) + new(space_id: space_id, wiki_id: wiki_id, **attributes).create + end + + private + + attr_reader :space_id, :wiki_id + + def resource + "increment" + end + + def extract_local_attributes + @wiki_id = attributes.delete(:wiki_id) + @space_id = attributes.delete(:space_id) + end + + def resources_path + ["spaces", space_id, "wiki/wiki_pages", wiki_id, "increments"].join("/") + end + end +end diff --git a/spec/ribose/wiki_increment_spec.rb b/spec/ribose/wiki_increment_spec.rb new file mode 100644 index 0000000..6980abc --- /dev/null +++ b/spec/ribose/wiki_increment_spec.rb @@ -0,0 +1,29 @@ +require "spec_helper" + +RSpec.describe Ribose::WikiIncrement do + describe ".create" do + it "creates a new wiki page increment" do + wiki_id = 789_123_567 + space_id = 123_456_789 + + increment = Ribose::WikiIncrement.create( + wiki_id: wiki_id, space_id: space_id, **increment_attrs + ) + end + end + # describe ".all" do + # it "retrieves the list of wiki increments" do + # wiki_id = 789_123_567 + # space_id = 123_456_789 + # + # increments = Ribose::WikiIncrement.all(space_id, wiki_id) + # end + # end + # + def increment_attrs + { + revision: 0, + delta: { ops: [{ insert: "a" }] }, + } + end +end