mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
新增:openkylin_sign 签署协议
This commit is contained in:
45
app/services/api/v1/users/openkylin_sign/create_service.rb
Normal file
45
app/services/api/v1/users/openkylin_sign/create_service.rb
Normal 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
|
||||
Reference in New Issue
Block a user