mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-20 14:54:15 +01:00
(feat) OpenAPI/users: filter by created_after
This commit is contained in:
parent
7659597e32
commit
9ac2655256
@ -4,6 +4,7 @@
|
||||
- Accounting data is now built each night and saved in database
|
||||
- OpenAPI endpoint to fetch accounting data
|
||||
- Updated OpenAPI documentation
|
||||
- OpenAPI users endpoint offer ability to filter by created_after
|
||||
- Fix a bug: providing an array of attributes to filter OpenApi data, results in error
|
||||
- Fix a bug: unable to manage stocks on new products
|
||||
- Updated react-modal to 3.16.1
|
||||
|
@ -14,6 +14,7 @@ class OpenAPI::V1::UsersController < OpenAPI::V1::BaseController
|
||||
@users = @users.where(email: email_param)
|
||||
end
|
||||
@users = @users.where(id: may_array(params[:user_id])) if params[:user_id].present?
|
||||
@users = @users.where('created_at >= ?', DateTime.parse(params[:created_after])) if params[:created_after].present?
|
||||
|
||||
return if params[:page].blank?
|
||||
|
||||
|
@ -17,6 +17,7 @@ class OpenAPI::V1::UsersDoc < OpenAPI::V1::BaseDoc
|
||||
param_group :pagination
|
||||
param :email, [String, Array], optional: true, desc: 'Filter users by *email* using strict matching.'
|
||||
param :user_id, [Integer, Array], optional: true, desc: 'Filter users by *id* using strict matching.'
|
||||
param :created_after, DateTime, optional: true, desc: 'Filter users to accounts created after the given date.'
|
||||
example <<-USERS
|
||||
# /open_api/v1/users?page=1&per_page=4
|
||||
{
|
||||
|
@ -15,12 +15,17 @@ class OpenApi::UsersTest < ActionDispatch::IntegrationTest
|
||||
assert_equal Mime[:json], response.content_type
|
||||
|
||||
users = json_response(response.body)
|
||||
assert_equal User.count, users[:users].length
|
||||
assert_not_nil(users[:users].detect { |u| u[:external_id] == 'J5821-4' })
|
||||
end
|
||||
|
||||
test 'list all users with pagination' do
|
||||
get '/open_api/v1/users?page=1&per_page=5', headers: open_api_headers(@token)
|
||||
assert_response :success
|
||||
assert_equal Mime[:json], response.content_type
|
||||
|
||||
users = json_response(response.body)
|
||||
assert_equal 5, users[:users].length
|
||||
end
|
||||
|
||||
test 'list all users filtering by IDs' do
|
||||
@ -46,5 +51,20 @@ class OpenApi::UsersTest < ActionDispatch::IntegrationTest
|
||||
test 'list all users filtering by email' do
|
||||
get '/open_api/v1/users?email=jean.dupond@gmail.com', headers: open_api_headers(@token)
|
||||
assert_response :success
|
||||
assert_equal Mime[:json], response.content_type
|
||||
|
||||
users = json_response(response.body)
|
||||
assert_equal 1, users[:users].count
|
||||
assert_equal 'jean.dupond@gmail.com', users[:users].first[:email]
|
||||
end
|
||||
|
||||
test 'list all users created after date' do
|
||||
get '/open_api/v1/users?created_after=2018-01-01T00:00:00+01:00', headers: open_api_headers(@token)
|
||||
assert_response :success
|
||||
assert_equal Mime[:json], response.content_type
|
||||
|
||||
users = json_response(response.body)
|
||||
assert users[:users].count.positive?
|
||||
assert(users[:users].all? { |u| DateTime.parse(u[:created_at]) >= DateTime.parse('2018-01-01T00:00:00+01:00') })
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user