res/ari: Fix model validation for ChannelHold event
authorMatthew Jordan <mjordan@digium.com>
Fri, 10 Apr 2015 14:56:05 +0000 (14:56 +0000)
committerMatthew Jordan <mjordan@digium.com>
Fri, 10 Apr 2015 14:56:05 +0000 (14:56 +0000)
When the ChannelHold event was added, the 'musicclass' parameter was
erroneously removed. This caused the ChannelHold events to be rejected as
they failed model validation. This patch updates the Swagger schema such that
it now properly reflects the event that is being created.

Hooray for tests that catch things like this.
........

Merged revisions 434597 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434598 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/ari/ari_model_validators.c
res/ari/ari_model_validators.h
rest-api/api-docs/events.json

index 007d765..97435d0 100644 (file)
@@ -3245,6 +3245,15 @@ int ast_ari_validate_channel_hold(struct ast_json *json)
                                res = 0;
                        }
                } else
+               if (strcmp("musicclass", ast_json_object_iter_key(iter)) == 0) {
+                       int prop_is_valid;
+                       prop_is_valid = ast_ari_validate_string(
+                               ast_json_object_iter_value(iter));
+                       if (!prop_is_valid) {
+                               ast_log(LOG_ERROR, "ARI ChannelHold field musicclass failed validation\n");
+                               res = 0;
+                       }
+               } else
                {
                        ast_log(LOG_ERROR,
                                "ARI ChannelHold has undocumented field %s\n",
index 9cb1bc3..1fafba3 100644 (file)
@@ -1434,6 +1434,7 @@ ari_validator ast_ari_validate_application_fn(void);
  * - application: string (required)
  * - timestamp: Date
  * - channel: Channel (required)
+ * - musicclass: string
  * ChannelLeftBridge
  * - type: string (required)
  * - application: string (required)
index f5e61f9..35c9377 100644 (file)
                                        "required": true,
                                        "type": "Channel",
                                        "description": "The channel that initiated the hold event."
+                               },
+                               "musicclass": {
+                                       "required": false,
+                                       "type": "string",
+                                       "description": "The music on hold class that the initiator requested."
                                }
                        }
                },