Skip to content

Commit c2f7dab

Browse files
committed
initialize API for dashboard
1 parent 88afdba commit c2f7dab

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

lib/jekyll-admin/server.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module JekyllAdmin
22
class Server < Sinatra::Base
3-
ROUTES = %w(collections configuration data pages static_files).freeze
3+
ROUTES = %w(collections configuration dashboard data pages static_files).freeze
44
include JekyllAdmin::PathHelper
55
include JekyllAdmin::FileHelper
66

@@ -86,6 +86,7 @@ def namespace
8686

8787
require "jekyll-admin/server/collection"
8888
require "jekyll-admin/server/configuration"
89+
require "jekyll-admin/server/dashboard"
8990
require "jekyll-admin/server/data"
9091
require "jekyll-admin/server/page"
9192
require "jekyll-admin/server/static_file"

lib/jekyll-admin/server/dashboard.rb

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module JekyllAdmin
2+
class Server < Sinatra::Base
3+
namespace "/dashboard" do
4+
get do
5+
json site.site_payload.to_h.merge({
6+
"site" => dashboard_site_payload,
7+
})
8+
end
9+
10+
private
11+
12+
def dashboard_site_payload
13+
output = site.site_payload["site"].to_h.merge({
14+
"data_files" => data_files,
15+
"html_pages" => named_html_pages,
16+
"pages" => recent_pages.map { |page| page.to_api["path"] },
17+
"posts" => paths_to_posts,
18+
"collections" => site.collections.map { |c| c[0] },
19+
})
20+
21+
output.delete("documents")
22+
output.delete("data")
23+
24+
output
25+
end
26+
27+
def named_html_pages
28+
site.pages.select(&:html?).map { |page| page.to_api["name"] }
29+
end
30+
31+
def recent_pages
32+
site.pages.sort_by! { |page| page.to_api["modified_at"] }.reverse
33+
end
34+
35+
def paths_to_posts
36+
site.posts.docs.map { |post| post.relative_path.sub("_posts/", "") }
37+
end
38+
39+
def data_files
40+
DataFile.all.map { |d| d.to_api["relative_path"].sub("/_data/", "") }
41+
end
42+
end
43+
end
44+
end

0 commit comments

Comments
 (0)