Refactor micropub specific things out to a slice

This commit is contained in:
2023-11-15 18:55:57 +11:00
parent 730ecb9ea4
commit 5b133363b3
63 changed files with 468 additions and 174 deletions

View File

@@ -0,0 +1,18 @@
module Micropub
module Validation
module Posts
class BookContract < Dry::Validation::Contract
params do
required(:name).maybe(:string)
required(:content).filled(:string)
required(:category).array(:string)
required(:published_at).maybe(:time)
required(:slug).filled(:string)
required(:post_type).value(included_in?: %w[book])
required(:book_author).maybe(:string)
required(:book_status).value(included_in?: %w[to-read reading read finished])
end
end
end
end
end

View File

@@ -0,0 +1,20 @@
module Micropub
module Validation
module Posts
class BookmarkContract < Dry::Validation::Contract
params do
required(:name).filled(:string)
required(:content).maybe(:string)
required(:category).array(:string)
required(:published_at).maybe(:time)
required(:url).filled(:string)
required(:slug).filled(:string)
required(:post_type).value(included_in?: %w[bookmark])
required(:syndicate_to).array(:string)
required(:photos).array(:hash)
required(:cache).filled(:bool)
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module Micropub
module Validation
module Posts
class CheckinContract < Dry::Validation::Contract
params do
required(:name).maybe(:string)
required(:content).maybe(:string)
required(:category).array(:string)
required(:published_at).maybe(:time)
required(:slug).filled(:string)
required(:post_type).value(included_in?: %w[checkin])
required(:syndication_sources).array(:string)
required(:photos).array(:hash)
required(:location).maybe(:string)
end
end
end
end
end

View File

@@ -0,0 +1,19 @@
module Micropub
module Validation
module Posts
class PostContract < Dry::Validation::Contract
params do
required(:name).maybe(:string)
required(:content).filled(:string)
required(:category).array(:string)
required(:published_at).maybe(:time)
required(:slug).filled(:string)
required(:post_type).value(included_in?: %w[post])
required(:syndicate_to).array(:string)
required(:photos).array(:hash)
required(:location).maybe(:string)
end
end
end
end
end