新增:openkylin_sign 签署协议

This commit is contained in:
2023-04-21 09:23:30 +08:00
parent 4dbb416143
commit e9da21bccf
6 changed files with 113 additions and 2 deletions

View File

@@ -0,0 +1,45 @@
class Api::V1::Users::OpenkylinSign::CreateService < ApplicationService
include ActiveModel::Model
attr_reader :observe_user, :login, :email, :nickname, :phone, :address
# validates :login, format: {with: CustomRegexp::LOGIN}
validates :email, format: {with: CustomRegexp::EMAIL}
validates :nickname, length: { maximum: 32 }
validates :phone, format: {with: CustomRegexp::PHONE}
validates :address, length: { maximum: 100 }
def initialize(observe_user, params={})
@observe_user = observe_user
@login = observe_user.login
@email = params[:email]
@nickname = params[:nickname]
@phone = params[:phone]
@address = params[:address]
end
def call
raise Error, errors.full_messages.join(",") unless valid?
raise Error, '用户已经签署CLA协议' if @observe_user.sign_cla
begin
ActiveRecord::Base.transaction do
create_openkylin_sign_detail
update_user_sign_cla
end
return true
rescue
raise Error, "服务器错误,请联系系统管理员!"
end
end
private
def create_openkylin_sign_detail
OpenkylinSignDetail.create!(user_id: @observe_user.id, login: @login, email: @email, nickname: @nickname, phone: @phone, address: @address)
end
def update_user_sign_cla
@observe_user.update_attributes!(sign_cla: true)
end
end