foodcoops/foodsoft

View on GitHub
app/controllers/api/v1/navigations_controller.rb

Summary

Maintainability
A
25 mins
Test Coverage
class Api::V1::NavigationsController < Api::V1::BaseController
  def show
    # we don't use active_model_serializers here, because source is a Hash
    render json: { navigation: transform(navigation) }
  end

  private

  def navigation
    render_navigation(renderer: :json, as_hash: true)
  end

  def transform(items)
    items.map do |item|
      r = {}
      r[:name] = item[:name]
      r[:url] = request.base_url + item[:url] if item[:url] && item[:url] != '#'
      r[:items] = transform(item[:items]) if item[:items]
      r
    end
  end
end