From 2031b9fc609385ba2de4317f1ab69b25420cf020 Mon Sep 17 00:00:00 2001 From: andrew Date: Wed, 28 Nov 2018 16:23:45 -0600 Subject: [PATCH] Adding Kotlin and its Fuel HTTP Client --- src/targets/index.js | 1 + src/targets/kotlin/fuel.js | 51 +++++++++++++++++++++++++++++++++++++ src/targets/kotlin/index.js | 12 +++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/targets/kotlin/fuel.js create mode 100644 src/targets/kotlin/index.js diff --git a/src/targets/index.js b/src/targets/index.js index d4369529d..bdc9a8da7 100644 --- a/src/targets/index.js +++ b/src/targets/index.js @@ -7,6 +7,7 @@ module.exports = { go: require('./go'), java: require('./java'), javascript: require('./javascript'), + kotlin: require('./kotlin'), node: require('./node'), objc: require('./objc'), ocaml: require('./ocaml'), diff --git a/src/targets/kotlin/fuel.js b/src/targets/kotlin/fuel.js new file mode 100644 index 000000000..ca7cf73bf --- /dev/null +++ b/src/targets/kotlin/fuel.js @@ -0,0 +1,51 @@ +/** + * @description + * HTTP code snippet generator for Kotlin using Fuel. + * + * @author + * @ajthom90 + * + * for any questions or issues regarding the generated code snippet, please open an issue mentioning the author. + */ + +'use strict' + +var util = require('util') +var CodeBuilder = require('../../helpers/code-builder') + +module.exports = function (source, options) { + var opts = util._extend({ + indent: ' ' + }, options) + + var code = new CodeBuilder(opts.indent) + + var methodsToFuelExtension = { 'GET': 'httpGet()', 'POST': 'httpPost()', 'PUT': 'httpPut()', 'DELETE': 'httpDelete()', 'PATCH': 'httpPatch', 'HEAD': 'httpHead()' } + + code.push('val (request, response, result) = "%s".%s', source.fullUrl, methodsToFuelExtension[source.method.toUpperCase()]) + + if (source.postData.text) { + code.push(1, '.body(%s)', JSON.stringify(source.postData.text)) + } + + // Add headers, including the cookies + var headers = Object.keys(source.allHeaders) + + // construct headers + if (headers.length) { + headers.forEach(function (key) { + code.push(1, '.header("%s" to "%s")', key, source.allHeaders[key]) + }) + } + + code.push(1, '.response()') + + return code.join() +} + +module.exports.info = { + key: 'fuel', + title: 'Fuel', + link: 'https://github.com/kittinunf/Fuel', + description: 'An HTTP Request Client Library for Kotlin' +} diff --git a/src/targets/kotlin/index.js b/src/targets/kotlin/index.js new file mode 100644 index 000000000..db07bb8f0 --- /dev/null +++ b/src/targets/kotlin/index.js @@ -0,0 +1,12 @@ +'use strict' + +module.exports = { + info: { + key: 'kotlin', + title: 'Kotlin', + extname: '.kt', + default: 'fuel' + }, + + fuel: require('./fuel') +}