module TeamApi::ApiImplSnippetHelpers

Private Instance Methods

generate_latest_snippet_endpoint() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 30
def generate_latest_snippet_endpoint
  return if snippets.empty?
  latest = snippets.first
  endpoint = 'snippets/latest'
  Endpoint.create(site, "#{baseurl}/#{endpoint}",
    { 'datestamp' => latest[0] }.merge(envelop(endpoint, latest[1])))
end
generate_snippets_by_date_endpoints() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 38
def generate_snippets_by_date_endpoints
  snippets.each do |timestamp, batch|
    endpoint = "snippets/#{timestamp}"
    Endpoint.create site, "#{baseurl}/#{endpoint}", envelop(endpoint, batch)
  end
end
generate_snippets_by_user_endpoints() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 45
def generate_snippets_by_user_endpoints
  snippets_by_user.each do |name, batch|
    Endpoint.create site, "#{baseurl}/snippets/#{name}", batch
    Endpoint.create(
      site, "#{baseurl}/snippets/#{name}/latest", [batch.first].to_h)
  end
end
generate_snippets_index_summary_endpoint() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 53
def generate_snippets_index_summary_endpoint
  generate_index_endpoint(
    'snippets', 'Snippets', 'Summary of all available snippets',
    snippets_summary) unless snippets.empty?
end
snippet_dates() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 5
def snippet_dates
  @snippet_dates ||= (data['snippets'] || {}).keys.sort.reverse
end
snippets() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 9
def snippets
  @snippets ||= snippet_dates.map { |t| [t, data['snippets'][t]] }.to_h
end
snippets_by_user() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 13
def snippets_by_user
  @snippets_by_user ||= snippets
    .flat_map { |date, batch| batch.map { |snippet| [date, snippet] } }
    .group_by { |_date, snippet| snippet['name'] }
    .map { |name, mapping| [name, mapping.to_h] }
    .to_h
end
snippets_summary() click to toggle source
# File lib/team_api/api_impl_snippet_helpers.rb, line 21
def snippets_summary
  @snippet_summary ||= {
    'latest' => snippet_dates.first,
    'all' => snippet_dates,
    'users' => Canonicalizer.team_xrefs(
      data['team'], snippets_by_user.keys),
  }
end