def view_search_stock_price(req): if req.method == 'GET': user_id = req.GET.get('user_id', None) api_key = req.GET.get('api_key', None) stock_symbol = req.GET.get('stock_symbol', None) check_stock = stockRepository() check_stock = check_stock.checkIfStockIsSoldToOthers(stock_symbol) if check_stock is not False: u = userRepository() u = u.getById(user_id) sold = {'sold': True, 'username': u.username} else: sold = False if all([user_id, api_key, stock_symbol]): if keyRepository( api_key).getKeyBySk() == False and 'test' not in req.GET: response = returnResponse("Api key not found", {}, 'false', 203) return JsonResponse(response, status=203, safe=False) elif not userRepository().getById(user_id): response = returnResponse( "Unauthorize, check that 'user_id' is valid", {}, 'false', 401) return JsonResponse(response, status=401, safe=False) else: iex = iexRepository(settings.IEX_TOKEN_SK, stock_symbol) iex = iex.getStockViaClient() if iex is not False: response = returnResponse( "Query Successful", { 'latestPrice': iex['latestPrice'], 'iexRealtimePrice': iex['iexRealtimePrice'], 'extendedPrice': iex['iexRealtimePrice'] }, 'true', 200, sold) return JsonResponse(response, status=200, safe=False) else: response = returnResponse( "IEX returned a query error, check your symbol and try again", {}, 'false', 203) return JsonResponse(response, status=203, safe=False) else: response = returnResponse( "Some stuffs are missing in your request", {}, 'false', 406) return JsonResponse(response, status=406, safe=False)
def view_buy_stock(req): if req.method == 'GET': user_id = req.GET.get('user_id', None) stock_symbol = req.GET.get('stock_symbol', None) api_key = req.GET.get('api_key', None) if all([user_id, api_key, stock_symbol]): if keyRepository( api_key).getKeyBySk() == False and 'test' not in req.GET: response = returnResponse("Api key not found", {}, 'false', 203) return JsonResponse(response, status=203, safe=False) elif not userRepository().getById(user_id): response = returnResponse( "Unauthorize, check that 'user_id' is valid", {}, 'false', 401) return JsonResponse(response, status=401, safe=False) else: iex = iexRepository(settings.IEX_TOKEN_SK, stock_symbol) iex = iex.getStockViaClient() if iex == False: response = returnResponse( "This stock does not exist on IEX", {}, 'false', 406) return JsonResponse(response, status=406, safe=False) stock = stockRepository(req.GET) if stock.checkIfStockIsSoldToOthers(stock_symbol) is not False: response = returnResponse("This stock has been purchased", {}, 'false', 406) return JsonResponse(response, status=406, safe=False) if stock.buyStock(req.user.id): response = returnResponse("Stock Successfully Purchased", {}, 'true', 200) return JsonResponse(response, status=200, safe=False) else: response = returnResponse( "You could not purchase this stock, ensure you have enough in wallet", {}, 'false', 406) return JsonResponse(response, status=406, safe=False) else: response = returnResponse( "Some stuffs are missing in your request", {}, 'false', 406) return JsonResponse(response, status=406, safe=False)
def test_if_latestytd_is_in_iex(self): data = iexRepository(settings.IEX_TOKEN_SK, 'ACAM').getStockQuote() print(data['ytdChange']) self.assertNotEqual(None, data['ytdChange'])
def test_if_lateshighweek_is_in_iex(self): data = iexRepository(settings.IEX_TOKEN_SK, 'ACAM').getStockQuote() print(data['week52High']) self.assertNotEqual(None, data['week52High'])
def test_if_companyname_is_in_iex(self): data = iexRepository(settings.IEX_TOKEN_SK, 'ACAM').getStockQuote() print(data['companyName']) self.assertNotEqual(None, data['companyName'])
def test_multiple_stock_quotes(self): print("Be sure multiple stocks can be collected from IEX") data = iexRepository(settings.IEX_TOKEN_SK).getMultipleStocks( ['AAPL', 'SE', 'ACAM']) self.assertNotEqual(False, data)
def test_stock_quote_via_client(self): print("Be sure stock price can be collected from IEX") data = iexRepository(settings.IEX_TOKEN_SK, 'ACAM').getStockViaClient() self.assertNotEqual(False, data)
def test_stock_quote(self): print("Be sure stock quotes can be collected from IEX") data = iexRepository(settings.IEX_TOKEN_SK, 'ACAM').getStockQuote() self.assertNotEqual(False, data)