From 4ca14d7cdfc1fab3229e2a9b3c96419dc6f2e7d5 Mon Sep 17 00:00:00 2001 From: YingRui Lu Date: Wed, 8 May 2019 14:01:34 +0800 Subject: [PATCH] support sortable fields --- lib/generators/jsonapi/swagger/swagger_generator.rb | 8 ++++++++ lib/generators/jsonapi/swagger/templates/swagger.rb.erb | 3 +++ lib/i18n/en.yml | 1 + lib/i18n/zh-CN.yml | 1 + 4 files changed, 13 insertions(+) diff --git a/lib/generators/jsonapi/swagger/swagger_generator.rb b/lib/generators/jsonapi/swagger/swagger_generator.rb index 903e1e5..ea6118d 100644 --- a/lib/generators/jsonapi/swagger/swagger_generator.rb +++ b/lib/generators/jsonapi/swagger/swagger_generator.rb @@ -34,6 +34,10 @@ module Jsonapi (class_path + [file_name]).map!(&:camelize).join("::") end + def sortable_feilds_desc + t(:sortable_fields) + ': [-]' + sortable_fields.join(',') + end + def model_klass model_class_name.safe_constantize end @@ -50,6 +54,10 @@ module Jsonapi resource_klass._relationships end + def sortable_fields + resource_klass.sortable_fields + end + def filters resource_klass.filters end diff --git a/lib/generators/jsonapi/swagger/templates/swagger.rb.erb b/lib/generators/jsonapi/swagger/templates/swagger.rb.erb index 717a6a4..16a20fd 100644 --- a/lib/generators/jsonapi/swagger/templates/swagger.rb.erb +++ b/lib/generators/jsonapi/swagger/templates/swagger.rb.erb @@ -11,6 +11,9 @@ RSpec.describe '<%= resouces_name %>', type: :request do tags '<%= route_resouces %>' produces 'application/vnd.api+json' parameter name: :'page[number]', in: :query, type: :string, description: '<%= t(:page_num) %>', required: false +<% if sortable_fields.present? -%> + parameter name: :'sort', in: :query, type: :string, description: '<%= sortable_feilds_desc %>', required: false +<% end -%> <% if relationships.present? -%> parameter name: :include, in: :query, type: :string, description: '<%= t(:include_related_data) %>', required: false <% end -%> diff --git a/lib/i18n/en.yml b/lib/i18n/en.yml index ffbc73f..336c893 100644 --- a/lib/i18n/en.yml +++ b/lib/i18n/en.yml @@ -2,6 +2,7 @@ en: jsonapi_swagger: page_num: 'Page Number' include_related_data: 'Include Related Data' + sortable_fields: 'Sortable Fields' display_field: 'Display Field' filter_field: 'Filter Field' list: 'List' diff --git a/lib/i18n/zh-CN.yml b/lib/i18n/zh-CN.yml index 36b9cd0..a902e29 100644 --- a/lib/i18n/zh-CN.yml +++ b/lib/i18n/zh-CN.yml @@ -2,6 +2,7 @@ zh-CN: jsonapi_swagger: page_num: '页码' include_related_data: '包含关联数据' + sortable_fields: '排序字段' display_field: '显示字段' filter_field: '过滤字段' list: '列表'