Refactor micropub specific things out to a slice
This commit is contained in:
18
slices/micropub/validation/posts/book_contract.rb
Normal file
18
slices/micropub/validation/posts/book_contract.rb
Normal 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
|
20
slices/micropub/validation/posts/bookmark_contract.rb
Normal file
20
slices/micropub/validation/posts/bookmark_contract.rb
Normal 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
|
19
slices/micropub/validation/posts/checkin_contract.rb
Normal file
19
slices/micropub/validation/posts/checkin_contract.rb
Normal 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
|
19
slices/micropub/validation/posts/post_contract.rb
Normal file
19
slices/micropub/validation/posts/post_contract.rb
Normal 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
|
Reference in New Issue
Block a user