Class: Courier::Profiles::Slack
- Inherits:
-
Object
- Object
- Courier::Profiles::Slack
- Defined in:
- lib/trycourier/profiles/types/slack.rb
Class Method Summary collapse
-
.from_json(json_object:) ⇒ Profiles::Slack
Deserialize a JSON object to an instance of Slack.
-
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object’s property definitions.
Class Method Details
.from_json(json_object:) ⇒ Profiles::Slack
Deserialize a JSON object to an instance of Slack
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/trycourier/profiles/types/slack.rb', line 15 def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) begin Profiles::SendToSlackChannel.validate_raw(obj: struct) return Profiles::SendToSlackChannel.from_json(json_object: json_object) rescue StandardError # noop end begin Profiles::SendToSlackEmail.validate_raw(obj: struct) return Profiles::SendToSlackEmail.from_json(json_object: json_object) rescue StandardError # noop end begin Profiles::SendToSlackUserId.validate_raw(obj: struct) return Profiles::SendToSlackUserId.from_json(json_object: json_object) rescue StandardError # noop end struct end |
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object’s property definitions.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/trycourier/profiles/types/slack.rb', line 42 def self.validate_raw(obj:) begin return Profiles::SendToSlackChannel.validate_raw(obj: obj) rescue StandardError # noop end begin return Profiles::SendToSlackEmail.validate_raw(obj: obj) rescue StandardError # noop end begin return Profiles::SendToSlackUserId.validate_raw(obj: obj) rescue StandardError # noop end raise("Passed value matched no type within the union, validation failed.") end |