asterisk/rest-api-templates/rest_handler.mustache
David M. Lee 7d0d1a1efb ari: User better nicknames for ARI operations
While working on building client libraries from the Swagger API, I
noticed a problem with the nicknames.

    channel.deleteChannel()
    channel.answerChannel()
    channel.muteChannel()

Etc. We put the object name in the nickname (since we were generating C
code), but it makes OO generators redundant.

This patch makes the nicknames more OO friendly. This resulted in a lot
of name changing within the res_ari_*.so modules, but not much else.

There were a couple of other fixed I made in the process.

 * When reversible operations (POST /hold, POST /unhold) were made more
   RESTful (POST /hold, DELETE /unhold), the path for the second operation
   was left in the API declaration. This worked, but really the two
   operations should have been on the same API.
 * The POST /unmute operation had still not been REST-ified.

Review: https://reviewboard.asterisk.org/r/2940/
........

Merged revisions 402528 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@402529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-11-07 21:10:31 +00:00

41 lines
1.1 KiB
Text

{{!
* Asterisk -- An open source telephony toolkit.
*
* Copyright (C) 2013, Digium, Inc.
*
* David M. Lee, II <dlee@digium.com>
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* any of the maintainers of this project for assistance;
* the project provides a web site, mailing lists and IRC
* channels for your use.
*
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
}}
{{!
* Recursive partial template to render a rest_handler. Used in
* res_ari_resource.c.mustache.
}}
{{#children}}
{{> rest_handler}}
{{/children}}
/*! \brief REST handler for {{path}} */
static struct stasis_rest_handlers {{full_name}} = {
.path_segment = "{{name}}",
{{#is_wildcard}}
.is_wildcard = 1,
{{/is_wildcard}}
.callbacks = {
{{#operations}}
{{#is_req}}
[{{c_http_method}}] = ast_ari_{{c_name}}_{{c_nickname}}_cb,
{{/is_req}}
{{/operations}}
},
.num_children = {{num_children}},
.children = { {{#children}}&{{full_name}},{{/children}} }
};