From d385a6da731dc6b3ec0ec5bec1e94eb2dcff5efb Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 26 Jul 2017 08:13:43 +0200 Subject: Refs: #3507@4h; Finished Basic WorkbenchImportWorker - speced but missing error treatment --- app/models/api/v1/api_key.rb | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'app/models/api') diff --git a/app/models/api/v1/api_key.rb b/app/models/api/v1/api_key.rb index 7390db232..e1a7ab5a4 100644 --- a/app/models/api/v1/api_key.rb +++ b/app/models/api/v1/api_key.rb @@ -3,9 +3,20 @@ module Api class ApiKey < ::ActiveRecord::Base before_create :generate_access_token belongs_to :referential, :class_name => '::Referential' + validates_presence_of :referential - def self.model_name - ActiveModel::Name.new self, Api::V1, self.name.demodulize + class << self + def from(referential, name:) + find_or_create_by!(name: name, referential: referential) + end + def model_name + ActiveModel::Name.new Api::V1, self.name.demodulize + end + def referential_from_token(token) + array = token.split('-') + return nil unless array.size==2 + ::Referential.find( array.first) + end end def eql?(other) @@ -13,16 +24,11 @@ module Api other.token == self.token end - def self.referential_from_token(token) - array = token.split('-') - return nil unless array.size==2 - ::Referential.find( array.first) - end private def generate_access_token begin - self.token = "#{referential.id}-#{SecureRandom.hex}" + self.token = "#{referential_id}-#{SecureRandom.hex}" end while self.class.exists?(:token => self.token) end end -- cgit v1.2.3