Moved to separate Ticket::Number class/adapter.
This commit is contained in:
parent
e4381827ab
commit
521346a650
1 changed files with 58 additions and 0 deletions
58
app/models/ticket/number.rb
Normal file
58
app/models/ticket/number.rb
Normal file
|
@ -0,0 +1,58 @@
|
|||
# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
|
||||
|
||||
class Ticket::Number < ApplicationLib
|
||||
|
||||
=begin
|
||||
|
||||
generate new ticket number
|
||||
|
||||
result = Ticket::Number.generate
|
||||
|
||||
returns
|
||||
|
||||
result = "1234556" # new ticket number
|
||||
|
||||
=end
|
||||
|
||||
def self.generate
|
||||
|
||||
# generate number
|
||||
(1..50_000).each { |i|
|
||||
number = adapter.generate
|
||||
ticket = Ticket.where( :number => number ).first
|
||||
return number if !ticket
|
||||
}
|
||||
raise "Can't generate new ticket number!"
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
check if string contrains a valid ticket number
|
||||
|
||||
result = Ticket::Number.check('some string [Ticket#123456]')
|
||||
|
||||
returns
|
||||
|
||||
result = ticket # Ticket model of ticket with matching ticket number
|
||||
|
||||
=end
|
||||
|
||||
def self.check(string)
|
||||
adapter.check(string)
|
||||
end
|
||||
|
||||
def self.adapter
|
||||
|
||||
# load backend based on config
|
||||
adapter_name = Setting.get('ticket_number')
|
||||
if !adapter_name
|
||||
raise "Missing ticket_number setting option"
|
||||
end
|
||||
adapter = self.load_adapter(adapter_name)
|
||||
if !adapter
|
||||
raise "Can't load ticket_number adapter '#{adapter_name}'"
|
||||
end
|
||||
adapter
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in a new issue