Initial commit

This commit is contained in:
Yaser
2026-08-13 19:56:46 +03:30
commit de1d57a67b
474 changed files with 43185 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
# frozen_string_literal: true
module API
module V2
module Admin
# Admin functionality over levels table
class Levels < Grape::API
resource :levels do
desc 'Returns array of permissions as paginated collection',
failure: [
{ code: 401, message: 'Invalid bearer token' }
],
success: API::V2::Entities::Level
get do
admin_authorize! :read, Level
present ::Level.all, with: API::V2::Entities::Level
end
desc 'Change vip level',
failure: [
{ code: 400, message: 'Required params are empty' },
{ code: 401, message: 'Invalid bearer token' },
{ code: 422, message: 'Validation errors' }
],
success: API::V2::Entities::User
params do
requires :uid, type: String
requires :level,
values: { value: -> (p){ %w[2 3].include?(p) }, message: 'user.level.invalid' },
default: '3',
desc: 'change level from vip'
end
put do
admin_authorize! :update, Profile
target_user = User.find_by(uid: params[:uid])
return error!({ errors: ['admin.users.doesnt_exist'] }, 404) if target_user.nil?
error!({ errors: ['admin.superadmin_change'] }, 422) if target_user.superadmin? && !current_user.superadmin?
unless target_user.update(declared(params.except(:uid), include_missing: false))
code_error!(target_user.errors.details, 422)
end
present user, with: API::V2::Entities::User
end
end
end
end
end
end