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,47 @@
# frozen_string_literal: true
module API::V2
module Management
# Profiles server-to-server API
class Profiles < Grape::API
desc 'Profiles related routes'
resource :profiles do
helpers do
def profile_param_keys
%w[first_name last_name dob address
postcode city country state metadata].freeze
end
end
desc 'Imports a profile for user' do
@settings[:scope] = :write_users
success API::V2::Management::Entities::UserWithProfile
end
params do
requires :uid, type: String, desc: 'User Uid', allow_blank: false
optional :first_name, type: String, desc: 'First Name', allow_blank: false
optional :last_name, type: String, desc: 'Last Name', allow_blank: false
optional :dob, type: Date, desc: 'Birth date', allow_blank: false
optional :address, type: String, desc: 'Address', allow_blank: false
optional :postcode, type: String, desc: 'Postcode', allow_blank: false
optional :city, type: String, desc: 'City', allow_blank: false
optional :country, type: String, desc: 'Country', allow_blank: false
optional :state, type: String, desc: 'State', allow_blank: false
optional :metadata, type: String, desc: 'Metadata', allow_blank: false
end
post do
user = User.find_by(uid: params[:uid])
error! 'user.doesnt_exist', 422 unless user
profile_params = params.slice(*profile_param_keys)
profile = Profile.new(profile_params.merge(user_id: user.id))
error!(profile.errors.full_messages, 422) unless profile.save
present user, with: API::V2::Management::Entities::UserWithProfile
end
end
end
end
end