def post(self):
		"""
		Upload a file to hive.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		#reading the file content
		request_file = request.files['file']
		if not request_file:
			data = {"error message":"No file attached","status":404, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=404,
				mimetype='application/json'
			)

		file_contents = request_file.stream.read().decode("utf-8")

		#upload file to hive
		api_url_base = settings.GMU_NET_IP_ADDRESS + settings.HIVE_PORT + settings.HIVE_ADD
		headers = {'Content-Disposition': 'multipart/form-data;boundary=--------------------------608819652137318562927303'}
		myResponse = requests.get(api_url_base, files={'file':file_contents}, headers=headers).json()
		return Response(json.dumps(myResponse), 
				status=200,
        		mimetype='application/json'
        	)
	def post(self):
		"""
		Returns Hash key of the content added.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		#reading the file content
		request_file = request.files['file']
		if not request_file:
			data = {"error message":"No file attached","status":404, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=404,
				mimetype='application/json'
			)

		file_contents = request_file.stream.read().decode("utf-8")

		#upload file to hive
		api_url_base = settings.GMU_NET_IP_ADDRESS + settings.HIVE_PORT + settings.HIVE_ADD
		headers = {'Content-Disposition': 'multipart/form-data;boundary=--------------------------608819652137318562927303'}
		myResponse1 = requests.get(api_url_base, files={'file':file_contents}, headers=headers).json()
		if not myResponse1:
			data = {"error message":"File could not be uploaded","status":404, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=404,
				mimetype='application/json'
			)


		#signing the hash key
		private_key = request.headers.get('private_key')
		api_url_base = settings.DID_SERVICE_URL + settings.DID_SERVICE_SIGN
		headers = {'Content-type': 'application/json'}
		req_data = 	{
      					"privateKey":private_key,
      					"msg":myResponse1['Hash']
  					}
		myResponse2 = requests.post(api_url_base, data=json.dumps(req_data), headers=headers).json()
		myResponse2['result']['hash'] = myResponse1['Hash']
		return Response(json.dumps(myResponse2), 
				status=myResponse2['status'],
				mimetype='application/json'
			)
Esempio n. 3
0
    def post(self):
        """
        Sign any message using your private key
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        api_url_base = settings.DID_SERVICE_URL + settings.DID_SERVICE_SIGN
        headers = {'Content-type': 'application/json'}
        req_data = request.get_json()
        myResponse = requests.post(api_url_base,
                                   data=json.dumps(req_data),
                                   headers=headers).json()
        return Response(json.dumps(myResponse),
                        status=myResponse['status'],
                        mimetype='application/json')
    def get(self):
        """
        Get a list of transactions
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        api_url_base = settings.WALLET_SERVICE_URL + settings.WALLET_API_TRANSACTIONS
        headers = {'Content-type': 'application/json'}
        req_data = request.get_json()
        myResponse = requests.post(api_url_base,
                                   data=json.dumps(req_data),
                                   headers=headers).json()
        return Response(json.dumps(myResponse),
                        status=myResponse['status'],
                        mimetype='application/json')
    def get(self):
        """
        Returns the getbestblockhash
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        headers = {
            'Accepts': 'application/json',
            'Content-Type': 'application/json'
        }
        session = Session()
        session.headers.update(headers)
        URL_BLOCKCONFIRM = settings.SIDECHAIN_RPC_URL
        d = {"method": "getbestblockhash"}
        response = session.post(URL_BLOCKCONFIRM, data=json.dumps(d))
        data = json.loads(response.text)
        return Response(json.dumps(data),
                        status=200,
                        mimetype='application/json')
    def get(self):
        """
		Returns API key of length 20.
		"""
        stringLength = 32
        api_key = ''.join(
            random.choice(string.ascii_letters + string.digits)
            for i in range(stringLength))
        data = {
            "API Key": api_key,
            "status": 200,
            "timestamp": getTime(),
            "path": request.url
        }
        return Response(json.dumps(data),
                        status=200,
                        mimetype='application/json')
Esempio n. 7
0
	def get(self, hash_key):
		"""
		Returns content of the hash key.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		api_url_base = settings.GMU_NET_IP_ADDRESS + settings.HIVE_PORT + settings.SHOW_CONTENT + "{}"
		myResponse = requests.get(api_url_base.format(hash_key))
		return Response(myResponse, 
			status=myResponse.status_code,
			mimetype='application/json'
		)
Esempio n. 8
0
	def post(self):
		"""
		Returns Hash key of the content added.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		api_url_base = settings.GMU_NET_IP_ADDRESS + settings.HIVE_PORT + settings.HIVE_ADD
		headers = {'Content-Disposition': 'multipart/form-data;boundary=--------------------------608819652137318562927303'}
		req_data = request.form.to_dict()
		myResponse = requests.get(api_url_base, files=req_data, headers=headers).json()
		return Response(json.dumps(myResponse), 
				status=200,
        		mimetype='application/json'
        	)
Esempio n. 9
0
    def get(self):
        """
        Returns the DID created
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        api_url_base = settings.DID_SERVICE_URL + settings.DID_SERVICE_GEN_DID
        myResponse = requests.get(api_url_base).json()
        return Response(json.dumps(myResponse),
                        status=myResponse['status'],
                        mimetype='application/json')
Esempio n. 10
0
    def get(self, balance_address):
        """
        Returns the balance of the provided public address
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        api_url_base = settings.WALLET_SERVICE_URL + settings.WALLET_API_BALANCE + "{}"
        myResponse = requests.get(api_url_base.format(balance_address)).json()
        return Response(json.dumps(myResponse),
                        status=myResponse['status'],
                        mimetype='application/json')
Esempio n. 11
0
    def get(self, transaction_address):
        """
        Get transaction history
        """
        api_key = request.headers.get('api_key')
        api_status = validate_api_key(api_key)
        if not api_status:
            data = {
                "error message": "API Key could not be verified",
                "status": 401,
                "timestamp": getTime(),
                "path": request.url
            }
            return Response(json.dumps(data),
                            status=401,
                            mimetype='application/json')

        api_url_base = settings.WALLET_SERVICE_URL + settings.WALLET_API_TRANSACTION_HISTORY + "{}"
        myResponse = requests.get(
            api_url_base.format(transaction_address)).json()
        return Response(json.dumps(myResponse),
                        status=myResponse['status'],
                        mimetype='application/json')
	def get(self):
		"""
		Returns content of the hash key.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		#create a wallet
		api_url_base = settings.WALLET_SERVICE_URL + settings.WALLET_API_CREATE
		myResponse1 = requests.get(api_url_base).json()
		if myResponse1['status'] != 200:
			data = {"error message":"Wallet could not be created","status":404, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
					status=404,
					mimetype='application/json'
				)

        #transfer ELA
		api_url_base = settings.WALLET_SERVICE_URL + settings.WALLET_API_TRANSFER
		headers = {'Content-type': 'application/json'}
		req_data = {
				      "sender":[
				          {
				              "address":"EUSa4vK5BkKXpGE3NoiUt695Z9dWVJ495s",
				              "privateKey":"109a5fb2b7c7abd0f2fa90b0a295e27de7104e768ab0294a47a1dd25da1f68a8"
				          }
				      ],
				      "memo":"测试",
				      "receiver":[
				          {
				              "address":myResponse1['result']['address'],
				              "amount":"100"
				          }
				      ]
				  }
		myResponse2 = requests.post(api_url_base, data=json.dumps(req_data), headers=headers).json()
		json_output = 	{
							"sender":[
				          	{
				            	"address":"EUSa4vK5BkKXpGE3NoiUt695Z9dWVJ495s",
				            	"transferred_amount":"100"
				          	}
				      		],
				      		"receiver":[
				        	{
				        		"privateKey":myResponse1['result']['privateKey'],
				        		"publicKey":myResponse1['result']['publicKey'],
				            	"address":myResponse1['result']['address']
				          	}
				      		],
				      		"transaction_id": myResponse2['result'],
    						"status": myResponse2['status']
						}
		return Response(json.dumps(json_output), 
				status=myResponse2['status'],
				mimetype='application/json'
			)
	def post(self):
		"""
		Returns content of the hash key.
		"""
		api_key = request.headers.get('api_key')
		api_status = validate_api_key(api_key)
		if not api_status:
			data = {"error message":"API Key could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		#verify the hash key
		api_url_base = settings.DID_SERVICE_URL + settings.DID_SERVICE_VERIFY
		headers = {'Content-type': 'application/json'}
		req_data = request.get_json()
		signed_message = req_data['msg']
		file_hash = req_data['hash']
		json_data = {
						"msg": req_data['msg'],
						"pub": req_data['pub'],
    					"sig": req_data['sig']
					}
		myResponse1 = requests.post(api_url_base, data=json.dumps(json_data), headers=headers).json()
		if myResponse1['result'] != True:
			data = {"error message":"Hask key could not be verified","status":404, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=404,
				mimetype='application/json'
			)

		#verify the given input message using private key
		private_key = request.headers.get('private_key')
		api_url_base = settings.DID_SERVICE_URL + settings.DID_SERVICE_SIGN
		headers = {'Content-type': 'application/json'}
		req_data = 	{
      					"privateKey":private_key,
      					"msg":req_data['hash']
  					}
		myResponse2 = requests.post(api_url_base, data=json.dumps(req_data), headers=headers).json()
		if myResponse2['status'] != 200:
			data = {"error message":"Hash Key and messsage could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

		if myResponse2['result']['msg'] != signed_message:
			data = {"error message":"Hash Key and messsage could not be verified","status":401, "timestamp":getTime(),"path":request.url}
			return Response(json.dumps(data), 
				status=401,
				mimetype='application/json'
			)

        #show content
		api_url_base = settings.GMU_NET_IP_ADDRESS + settings.HIVE_PORT + settings.SHOW_CONTENT + "{}"
		myResponse = requests.get(api_url_base.format(file_hash))
		return Response(myResponse, 
				status=200,
				mimetype='application/json'
			)