Sha256: a5a8da7f3d30a74b03d3dbde029cad029958a7d4d5ada376bf6812e7d386cb85

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

module DiscourseApi
  module API
    module Categories
      # :color and :text_color are RGB hexadecimal strings
      # :permissions is a hash with the group name and permission_type which is
      # an integer 1 = Full 2 = Create Post 3 = Read Only
      def create_category(args={})
        args = API.params(args)
                  .required(:name, :color, :text_color)
                  .optional(:description, :permissions)
                  .default(parent_category_id: nil)
        response = post("/categories", args)
        response['category']
      end

      def categories(params={})
        response = get('/categories.json', params)
        response[:body]['category_list']['categories']
      end

      def category_latest_topics(args={})
        params = API.params(args)
                    .required(:category_slug)
                    .optional(:page).to_h
        url = "/c/#{params[:category_slug]}/l/latest.json"
        if params.include?(:page)
          puts params[:page]
          url = "#{url}?page=#{params[:page]}"
        end 
        response = get(url)
        response[:body]['topic_list']['topics']
      end

      def category_top_topics(category_slug)
        response = get("/category/#{category_slug}/l/top.json")
        response[:body]['topic_list']['topics']
      end

      def category_new_topics(category_slug)
        response = get("/category/#{category_slug}/l/new.json")
        response[:body]['topic_list']['topics']
      end

      def category(id)
        response = get("/c/#{id}/show")
        response.body['category']
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
discourse_api-0.5.0 lib/discourse_api/api/categories.rb