8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/smith/persistence_adapters/payload_version.rb', line 8
def call(payload)
document = payload.is_a?(String) ? JSON.parse(payload) : payload
raise TypeError, "persisted workflow payload must be a JSON object" unless document.is_a?(Hash)
version = document.fetch("persistence_version", 0)
unless version.is_a?(Integer) && version >= 0
raise TypeError, "persisted workflow persistence_version must be a non-negative integer"
end
version
rescue JSON::ParserError
0
end
|