-
-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathfeeds.rb
More file actions
47 lines (42 loc) · 1.23 KB
/
feeds.rb
File metadata and controls
47 lines (42 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# frozen_string_literal: true
require 'html2rss/url'
require_relative 'contract'
require_relative 'feeds/create_feed'
require_relative 'feeds/show_feed'
module Html2rss
module Web
module Api
module V1
##
# Thin entrypoint for feed API actions.
#
# This indirection keeps route files small while exposing one stable
# namespace for create/show operations.
module Feeds
class << self
# @param request [Rack::Request]
# @param token [String]
# @return [String] serialized feed body.
def show(request, token)
ShowFeed.call(request, token)
end
# @param request [Rack::Request]
# @return [Hash{Symbol=>Object}] JSON-ready API payload.
def create(request)
CreateFeed.call(request)
end
# Compatibility seam for existing tests and callers.
#
# @param url [String]
# @return [String, nil]
def extract_site_title(url)
Html2rss::Url.for_channel(url).channel_titleized
rescue StandardError
nil
end
end
end
end
end
end
end