11# vi:set sw=4 ts=4 expandtab:
22# -*- coding: utf8 -*-
3- from hashlib import md5
3+
44import sys
55import hmac
66import mimetypes
99import time
1010import platform
1111
12+ from hashlib import md5
1213from sdk .exceptions import CoolsmsServerException
1314
1415# sys.version_info.major is available in python version 2.7
1920else :
2021 from http .client import HTTPSConnection
2122 from urllib .parse import urlencode
22- """
23- Copyright (C) 2008-2016 NURIGO
24- http://www.coolsms.co.kr
25- """
2623
27- # class Coolsms
28- # Gateway access url : https://api.coolsms.co.kr/{api type}/{verson}/{resource name}
24+ ## @mainpage PYTHON SDK
25+ # @section intro 소개
26+ # - 소개 : Coolsms REST API SDK FOR PYTHON
27+ # - 버전 : 2.0
28+ # - 설명 : Coolsms REST API 를 이용 보다 빠르고 안전하게 문자메시지를 보낼 수 있는 PYTHON으로 만들어진 SDK 입니다.
29+ # @section CreateInfo 작성 정보
30+ # - 작성자 : Nurigo
31+ # - 작성일 : 2016/05/13 *
32+ # @section common 기타 정보
33+ # - 저작권 GPL v2
34+ # - Copyright (C) 2008-2016 NURIGO
35+ # - http://www.coolsms.co.kr
36+
37+ ## @class Coolsms
38+ # @brief Gateway access url : https://api.coolsms.co.kr/{api type}/{verson}/{resource name}
2939class Coolsms :
3040 # SDK Version
3141 sdk_version = "2.0"
@@ -48,27 +58,25 @@ class Coolsms:
4858 # error handle
4959 error_string = None
5060
51- # constructor
61+ ## @brief initialize
62+ # @param string api_key [required]
63+ # @param string api_secret [required]
5264 def __init__ (self , api_key = str (), api_secret = str ()):
5365 self .api_key = api_key
5466 self .api_secret = api_secret
5567
56- # return salt, timestamp, signature
68+ ## @brief get signature
69+ # @return string salt, string timestamp, string signature
5770 def __get_signature__ (self ):
5871 salt = str (uuid .uuid1 ())
5972 timestamp = str (int (time .time ()))
6073 data = timestamp + salt
6174 return timestamp , salt , hmac .new (self .api_secret .encode (), data .encode (), md5 )
6275
63- # error handle
64- def __set_error__ (self , error_str ):
65- self .error_string = error_str
66-
67- # return error string set
68- def get_error (self ):
69- return self .error_string
70-
71- # http GET request
76+ ## @brief http GET method request
77+ # @param string resource [required]
78+ # @param dictionary params [optional]
79+ # @return JSONObject
7280 def request_get (self , resource , params = None ):
7381 if params == None :
7482 params = dict ()
@@ -94,7 +102,10 @@ def request_get(self, resource, params=None):
94102
95103 return obj
96104
97- # http POST request
105+ ## @brief http POST method request
106+ # @param string resource [required]
107+ # @param dictionary params [optional]
108+ # @return JSONObject
98109 def request_post (self , resource , params = None ):
99110 if params == None :
100111 params = dict ()
@@ -119,7 +130,11 @@ def request_post(self, resource, params=None):
119130
120131 return obj
121132
122- # send multipart form to the server
133+ ## @brief http POST method multipart form request
134+ # @param string resource [required]
135+ # @param dictionary params [optional]
136+ # @param dictionary files [optional]
137+ # @return JSONObject
123138 def request_post_multipart (self , resource , params , files ):
124139 host = self .host + ':' + str (self .port )
125140 selector = "/sms/%s/%s" % (self .api_version , resource )
@@ -148,12 +163,15 @@ def request_post_multipart(self, resource, params, files):
148163
149164 return obj
150165
151- # format multipart form
152- def encode_multipart_formdata (self , fields , files ):
166+ ## @brief format multipart form
167+ # @param dictionary params [required]
168+ # @param dictionary files [required]
169+ # @return string content_type, string body
170+ def encode_multipart_formdata (self , params , files ):
153171 boundary = str (uuid .uuid1 ())
154172 crlf = '\r \n '
155173 l = []
156- for key , value in fields .items ():
174+ for key , value in params .items ():
157175 l .append ('--' + boundary )
158176 l .append ('Content-Disposition: form-data; name="%s"' % key )
159177 l .append ('' )
@@ -171,11 +189,15 @@ def encode_multipart_formdata(self, fields, files):
171189 content_type = 'multipart/form-data; boundary=%s' % boundary
172190 return content_type , body
173191
174- # get content type
192+ ## @brief get content type
193+ # @param string filesname [required]
194+ # @return string content_type
175195 def get_content_type (filename ):
176196 return mimetypes .guess_type (filename )[0 ] or 'application/octet-stream'
177197
178- # set base parameter
198+ ## @brief set base parameter
199+ # @param dictionary params [required]
200+ # @return dictionary params
179201 def set_base_params (self , params ):
180202 timestamp , salt , signature = self .__get_signature__ ()
181203 base_params = {'api_key' : self .api_key , 'timestamp' : timestamp , 'salt' : salt ,
0 commit comments