@@ -9,7 +9,7 @@ module Api
99 module V1
1010 ##
1111 # Creates stable feed records from authenticated API requests.
12- module CreateFeed # rubocop:disable Metrics/ModuleLength
12+ module CreateFeed
1313 FEED_ATTRIBUTE_KEYS =
1414 %i[ id name url feed_token public_url json_public_url created_at updated_at ] . freeze
1515 FEED_METADATA_KEYS =
@@ -41,24 +41,33 @@ def call(request)
4141
4242 private
4343
44+ # @param request [Rack::Request]
45+ # @return [Hash]
4446 def require_account ( request )
4547 account = Auth . authenticate ( request )
4648 raise Html2rss ::Web ::UnauthorizedError , 'Authentication required' unless account
4749
4850 account
4951 end
5052
53+ # @param request [Rack::Request]
54+ # @param account [Hash]
55+ # @return [Html2rss::Web::Api::V1::FeedMetadata::CreateParams]
5156 def build_create_params ( request , account )
5257 url = validated_url ( request_params ( request ) [ 'url' ] , account )
5358 FeedMetadata ::CreateParams . new ( url :, name : FeedMetadata . site_title_for ( url ) )
5459 end
5560
61+ # @param request [Rack::Request]
62+ # @return [Hash]
5663 def request_params ( request )
5764 return request . params unless json_request? ( request )
5865
5966 request . GET . merge ( parsed_json_body ( request ) )
6067 end
6168
69+ # @param request [Rack::Request]
70+ # @return [Hash]
6271 def parsed_json_body ( request )
6372 raw_body = request . body . read
6473 request . body . rewind
@@ -72,6 +81,8 @@ def parsed_json_body(request)
7281 raise Html2rss ::Web ::BadRequestError , 'Invalid JSON payload'
7382 end
7483
84+ # @param request [Rack::Request]
85+ # @return [Boolean]
7586 def json_request? ( request )
7687 request . env [ 'CONTENT_TYPE' ] . to_s . include? ( 'application/json' )
7788 end
0 commit comments