| import requests
import json
class CryptPutClient:
    _url = '';
    _token = '';
    def __init__(self, url, username, password):
        self._url = url
        self._token = self.pullToken(username=username, password=password)
    def getUrl(self, add):
        return "{}{}".format(self._url, add)
    def getToken(self):
        return self._token
    def pullToken(self, username, password):
        url = self.getUrl('api-auth/');
        data = {
          'username': username,
          'password': password
        }
        headers = {
            'Content-type': 'application/json'
        }
        try:
            req = requests.post(url, headers=headers, json=data)
            response_json = json.loads(req.text)
            token = response_json['token']
        except Exception as e:
            print("Could not assign token from {}".format(url))
            token = None
        return token
    def rawRequest(self, data, headers, url, method=requests.post):
        response = method(url, headers=headers, json=data)
        return json.loads(response.text)
    def apiRequest(self, data, url, method=requests.post):
        headers = {
            "Content-type": "application/json",
            "Authorization": "JWT {}".format(self.getToken())
        }
        return self.rawRequest(data=data, headers=headers, url=url, method=method)
    def get(self, uid, decrypt=False):
        data = {'i': uid}
        if decrypt:
            data['d'] = '1'
        return self.apiRequest(data=data, url=self.getUrl('get/'))
    def put(self, data):
        data = {'d': data}
        url = self.getUrl('put/')
        response = self.apiRequest(data=data, url=self.getUrl('put/'))
        uid = response['id']
        return uid
# Test run
if __name__ == '__main__':
    username = ''
    password = ''
    c = CryptPutClient(
        url='http://crypto-put.zpmfhq6y4c.us-west-2.elasticbeanstalk.com/',
        username=username,
        password=password
    )
    uid = c.put(data="here is a secret message")
    data = c.get(uid=uid)
    print(data)
    data = c.get(uid=uid, decrypt=True)
    print(data)
 |