11/**
22 * @description
3- * HTTP code snippet generator for Requests
3+ * HTTP code snippet generator for Python using Requests
44 *
55 * @author
66 * @montanaflynn
1111'use strict'
1212
1313var util = require ( 'util' )
14+ var CodeBuilder = require ( '../../helpers/code-builder' )
1415
1516module . exports = function ( source , options ) {
1617 // Start snippet
17- var code = [ ]
18+ var code = new CodeBuilder ( ' ' )
1819
1920 // Import requests
20- code . push ( 'import requests\n' )
21+ code . push ( 'import requests' )
22+ . blank ( )
2123
2224 // Set URL
23- code . push ( util . format ( 'url = "%s"\n' , source . url ) )
25+ code . push ( util . format ( 'url = "%s"' , source . url ) )
26+ . blank ( )
2427
2528 // Construct query string
2629 if ( source . queryString . length ) {
27- var qs = 'querystring = {'
28- for ( var i = 0 ; i < source . queryString . length ; i ++ ) {
29- for ( var key in source . queryString [ i ] ) {
30- qs += "'" + key + "':" + "'" + source . queryString [ i ] [ key ] + "',"
31- }
32- }
33- qs = qs . substring ( 0 , qs . length - 1 )
34- qs += '}\n'
35- code . push ( qs )
30+ code . push ( 'querystring = ' + JSON . stringify ( source . queryObj ) )
31+ . blank ( )
3632 }
3733
3834 // Construct payload
3935 var payload = JSON . stringify ( source . postData . text )
36+
4037 if ( payload ) {
4138 code . push ( util . format ( 'payload = %s' , payload ) )
4239 }
@@ -45,39 +42,57 @@ module.exports = function (source, options) {
4542 var header
4643 var headers = source . allHeaders
4744 var headerCount = Object . keys ( headers ) . length
45+
4846 if ( headerCount === 1 ) {
4947 for ( header in headers ) {
50- code . push ( util . format ( 'headers = {\'%s\': \'%s\'}\n' , header , headers [ header ] ) )
48+ code . push ( util . format ( 'headers = {\'%s\': \'%s\'}' , header , headers [ header ] ) )
49+ . blank ( )
5150 }
5251 } else if ( headerCount > 1 ) {
5352 var headerLine
5453 var count = 1
54+
5555 code . push ( 'headers = {' )
56+
5657 for ( header in headers ) {
5758 if ( count ++ !== headerCount ) {
58- headerLine = util . format ( ' \'%s\': "%s",' , header , headers [ header ] )
59+ headerLine = util . format ( '\'%s\': "%s",' , header , headers [ header ] )
5960 } else {
60- headerLine = util . format ( ' \'%s\': "%s"' , header , headers [ header ] )
61+ headerLine = util . format ( '\'%s\': "%s"' , header , headers [ header ] )
6162 }
62- code . push ( headerLine )
63+
64+ code . push ( 1 , headerLine )
6365 }
64- code . push ( ' }\n' )
66+
67+ code . push ( 1 , '}' )
68+ . blank ( )
6569 }
6670
6771 // Construct request
6872 var method = source . method
6973 var request = util . format ( 'response = requests.request("%s", url' , method )
70- if ( payload ) request += ', data=payload'
71- if ( headerCount > 0 ) request += ', headers=headers'
72- if ( qs ) request += ', params=querystring'
73- request += ')\n'
74+
75+ if ( payload ) {
76+ request += ', data=payload'
77+ }
78+
79+ if ( headerCount > 0 ) {
80+ request += ', headers=headers'
81+ }
82+
83+ if ( qs ) {
84+ request += ', params=querystring'
85+ }
86+
87+ request += ')'
88+
7489 code . push ( request )
90+ . blank ( )
7591
76- // Print response
77- code . push ( 'print(response.text)' )
92+ // Print response
93+ . push ( 'print(response.text)' )
7894
79- console . log ( code . join ( '\n' ) )
80- return code . join ( '\n' )
95+ return code . join ( )
8196}
8297
8398module . exports . info = {
0 commit comments