summaryrefslogtreecommitdiff
path: root/lib/api/helpers/wikis_helpers.rb
blob: 4a14dc1f40abaaffe95222dcd2e7943bf26b9a6c (plain)
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
# frozen_string_literal: true

module API
  module Helpers
    module WikisHelpers
      def self.wiki_resource_kinds
        [:projects]
      end

      def find_container(kind)
        return user_project if kind == :projects

        raise "Unknown wiki container #{kind}"
      end

      def wiki_page
        Wiki.for_container(container, current_user).find_page(params[:slug]) || not_found!('Wiki Page')
      end

      def commit_params(attrs)
        base_params = { branch_name: attrs[:branch] }
        file_details = case attrs[:file]
                       when Hash # legacy format: TODO remove when we drop support for non accelerated uploads
                         { file_name: attrs[:file][:filename], file_content: attrs[:file][:tempfile].read }
                       else
                         { file_name: attrs[:file].original_filename, file_content: attrs[:file].read }
                       end

        base_params.merge(file_details)
      end
    end
  end
end

API::Helpers::WikisHelpers.prepend_mod_with('API::Helpers::WikisHelpers')