Skip to content

Commit

Permalink
Fix server based errors and unique error field name issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanstout committed Apr 29, 2015
1 parent 921fe94 commit 316da93
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 3 deletions.
3 changes: 3 additions & 0 deletions app/volt/tasks/store_tasks.rb
Expand Up @@ -55,6 +55,9 @@ def save(collection, path, data)
save_promise = model.save!.then do |result|

next nil
end.fail do |err|
# An error object, convert to hash
Promise.new.reject(err.to_h)
end

Thread.current['in_channel'] = nil
Expand Down
3 changes: 3 additions & 0 deletions lib/volt/models/buffer.rb
Expand Up @@ -42,6 +42,9 @@ def save!(&block)
end.fail do |errors|
if errors.is_a?(Hash)
server_errors.replace(errors)

# Merge the server errors into the main errors
self.errors.merge!(server_errors.to_h)
end

promise_for_errors(errors)
Expand Down
3 changes: 2 additions & 1 deletion lib/volt/models/validations.rb
Expand Up @@ -20,7 +20,8 @@ def validate(field_name = nil, options = nil, &block)
custom_validations << block
else
self.validations ||= {}
validations[field_name] = options
validations[field_name] ||= {}
validations[field_name].merge!(options)
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/volt/models/validators/unique_validator.rb
Expand Up @@ -17,7 +17,7 @@ def self.validate(model, field_name, args)
message = (args.is_a?(Hash) && args[:message]) || 'is already taken'

# return the error
next {field_name: [message]}
next {field_name => [message]}
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/volt/page/tasks.rb
Expand Up @@ -46,7 +46,7 @@ def response(promise_id, result, error)
if error
# TODO: full error handling
Volt.logger.error("Task Response:")
Volt.logger.error(error)
Volt.logger.error(error.inspect)
promise.reject(error)
else
promise.resolve(result)
Expand Down

0 comments on commit 316da93

Please sign in to comment.