Advertisement
Guest User

Untitled

a guest
May 21st, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. import StringIO, pycurl, json
  2.  
  3. class QTSAPIHelper:
  4.  
  5. # Constructor to set endpoint for reuse
  6. def __init__(self, endpoint):
  7. self.endpoint = endpoint
  8.  
  9. # Returns the result of a login attept with the given parameters.
  10. def login(self, username, password, apiKey):
  11. url = self.endpoint + "login"
  12. json_array = {'username':username, 'password':password, 'apiKey':apiKey}
  13. result = self.callAPI(url, json_array)
  14. return result
  15.  
  16. # Returns a list of surveys
  17. def listSurveys(self, pageSize, pageNumber):
  18. url = self.endpoint + "listSurveys"
  19. json_array = {'pageSize':pageSize, 'pageNumber':pageNumber}
  20. result = self.callAPI(url, json_array)
  21. return result
  22.  
  23. # Returns survey reponses for the given survey
  24. def getSurveyResponses(self, surveyId, pageSize, pageNumber, fromDate, toDate):
  25. url = self.endpoint + "getSurveyResponses"
  26. json_array = {'surveyId':surveyId, 'pageSize':pageSize, 'pageNumber':pageNumber}
  27. if fromDate and toDate:
  28. json_array['fromDate'] = fromDate
  29. json_array['toDate'] = toDate
  30. result = self.callAPI(url, json_array)
  31. return result
  32.  
  33. # Function to call API with given data
  34. def callAPI(self, url, json_array):
  35. data = json.dumps(json_array, encoding="utf-8")
  36. length = str(len(data))
  37. headers = ['Content-Type: application/json', 'Content-Length: '+length]
  38.  
  39. cookies_file = "/tmp/cookies.txt"
  40.  
  41. print "Connecting to: " + url
  42. print "Post Data: " + data
  43.  
  44. result = StringIO.StringIO()
  45. c = pycurl.Curl()
  46. c.setopt(pycurl.URL, url)
  47. c.setopt(pycurl.POST, 1)
  48. c.setopt(pycurl.POSTFIELDS, data)
  49. c.setopt(pycurl.HTTPHEADER, headers)
  50. c.setopt(pycurl.COOKIEFILE, cookies_file)
  51. c.setopt(pycurl.COOKIEJAR, cookies_file)
  52. c.setopt(pycurl.WRITEFUNCTION, result.write)
  53. #c.setopt(pycurl.SSL_VERIFYPEER, 0)
  54. #c.setopt(pycurl.SSL_VERIFYHOST, 0)
  55. c.perform()
  56. c.close()
  57.  
  58. return result
  59.  
  60. import QTSAPIHelper, json
  61.  
  62.  
  63. username = "myusername"
  64. password = "mypassword"
  65. apiKey = "myapikey"
  66.  
  67. # Constants
  68. CODE_LOGIN_SUCCESS = 10
  69. CODE_LIST_SURVEYS_SUCCESS = 20
  70. CODE_GET_SURVEY_RESPONSES_SUCCESS = 30
  71. ENDPOINT_URL = "https://www.quicktapsurvey.com/api-v1/"
  72.  
  73. # instantiate api helper class
  74. apiHelper = QTSAPIHelper.QTSAPIHelper(ENDPOINT_URL)
  75.  
  76. # call login method
  77. loginJson = apiHelper.login(username, password, apiKey)
  78. loginResult = json.loads(loginJson.getvalue())
  79. resultCode = int(loginResult["resultCode"])
  80.  
  81. if resultCode == CODE_LOGIN_SUCCESS:
  82. print "Login Successful.";
  83. pageSize = 25
  84. pageNumber = 1
  85. listSurveysJson = apiHelper.listSurveys(pageSize, pageNumber)
  86. listSurveysResult = json.loads(listSurveysJson.getvalue())
  87. resultCode = int(listSurveysResult["resultCode"])
  88.  
  89. if resultCode == CODE_LIST_SURVEYS_SUCCESS:
  90. print "List Surveys Successful.";
  91. surveyId = listSurveysResult["surveyList"][0]["surveyId"]
  92. pageSize = 25
  93. pageNumber = 1
  94. # sample date format: 2014-09-09 17:25:34 -0400
  95. fromDate = ""
  96. toDate = ""
  97. getSurveyResponsesJson = apiHelper.getSurveyResponses(surveyId, pageSize, pageNumber, fromDate, toDate)
  98. getSurveyResponsesResult = json.loads(getSurveyResponsesJson.getvalue())
  99. resultCode = int(getSurveyResponsesResult["resultCode"])
  100.  
  101. if resultCode == CODE_GET_SURVEY_RESPONSES_SUCCESS:
  102. print "Get Survey Responses Successful.";
  103. print "Responses: " + str(getSurveyResponsesResult)
  104. else:
  105. print "Get Survey Responses Failed with Code: " + str(resultCode);
  106.  
  107. else:
  108. print "List Surveys Failed with Code: " + str(resultCode);
  109.  
  110. else:
  111. print "Login Failed with Code: " + str(resultCode);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement