Beispiel #1
0
def NetPositionV4(requests):
    try:
        if requests.method == 'POST':
            post_data = json.loads(requests.body)

            UserKey = env.get('credentials', 'UserKey')
            AppName = env.get('credentials', 'AppName')
            UserId = env.get('credentials', 'UserId')
            Password = env.get('credentials', 'Password')
            EncryKey = env.get('credentials', 'EncryKey')
            OAS_key = env.get('credentials', 'Ocp-Apim-Subscription-Key')

            payload = {
                "head": {
                    "requestCode": "IIFLMarRQNetPositionV4",
                    "key": UserKey,
                    "appVer": "1.0",
                    "appName": AppName,
                    "osName": "Android",
                    "userId": UserId,
                    "password": Password
                },
                "body": {
                    "ClientCode": post_data.get('ClientCode')
                }
            }

            url = env.get('urls', 'NetPositionV4')
            header = {
                "Content-Type": "application/json",
                "Ocp-Apim-Subscription-Key": OAS_key
            }
            cookies = req.cookies.RequestsCookieJar()
            cookies.set('IIFLMarcookie', cookie_, domain='dataservice.iifl.in')

            resp = http.request(method='POST',
                                url=url,
                                headers=header,
                                body=json.dumps(payload))
            resp = req.post(url=url,
                            headers=header,
                            data=json.dumps(payload),
                            cookies=cookies)

            if not resp.status_code == 200:
                raise common_util.custom_exceptions.UserException(
                    ref_strings.Common.bad_response)

            resp = json.loads(resp.text)
            return common_util.send_sucess_message(resp)

    except custom_exceptions.UserException as e:
        return common_util.send_sucess_message({'msg': str(e)})
    except Exception as e:
        error = common_util.get_error_traceback(sys, e)
        print(error)
        return common_util.send_error_message()
Beispiel #2
0
def loginRequestMobileForVendor(requests):
    try:
        if requests.method == 'POST':
            post_data = json.loads(requests.body)
            UserKey = env.get('credentials', 'UserKey')
            AppName = env.get('credentials', 'AppName')
            UserId = env.get('credentials', 'UserId')
            Password = env.get('credentials', 'Password')
            Email_id = env.get('credentials', 'Email_id')
            ContactNumber = env.get('credentials', 'ContactNumber')
            EncryKey = env.get('credentials', 'EncryKey')
            OAS_key = env.get('credentials', 'Ocp-Apim-Subscription-Key')

            #server side check to see if all required params are passed
            common_util.check_if_present(UserKey, AppName, UserId, Password, Email_id, ContactNumber, EncryKey, OAS_key)

            url = env.get('urls', 'loginRequestMobileForVendor')
            header = {
                "Content-Type": "application/json",
                "Ocp-Apim-Subscription-Key": OAS_key
            }
            payload = {
                "head": {
                        "requestCode": "IIFLMarRQLoginForVendor",
                        "key": UserKey,
                        "appVer": "1.0",
                        "appName": AppName,
                        "osName": "Android",
                        "userId": common_util.auth.encrypt(UserId),
                        "password": common_util.auth.encrypt(Password)
                    },
                "body": {
                    "Email_id": Email_id,
                    "ContactNumber": ContactNumber,
                    "LocalIP": "192.168.88.41",
                    "PublicIP": "192.168.88.42"
                 }
            }

            session = req.Session()
            resp = session.post(url=url,headers=header,data=json.dumps(payload))
            print (resp.cookies)
            if not resp.status_code == 200:
                raise common_util.custom_exceptions.UserException(ref_strings.Common.bad_response)
            resp = json.loads(resp.text)
            resp['cookies'] = session.cookies.get_dict()
            return common_util.send_sucess_message(resp)

    except custom_exceptions.UserException as e:
        return common_util.send_sucess_message({'msg': str(e)})
    except Exception as e:
        error = common_util.get_error_traceback(sys, e)
        print(error)
        return common_util.send_error_message()
Beispiel #3
0
def LoginRequestV2(requests):
    try:
        if requests.method == 'POST':
            post_data = json.loads(requests.body)

            UserKey = env.get('credentials', 'UserKey')
            AppName = env.get('credentials', 'AppName')
            UserId = env.get('credentials', 'UserId')
            Password = env.get('credentials', 'Password')
            EncryKey = env.get('credentials', 'EncryKey')
            OAS_key = env.get('credentials', 'Ocp-Apim-Subscription-Key')
            
            ClientCode = post_data.get('ClientCode', '')
            Password_ = post_data.get('Password', '')
            HDSerialNumber = post_data.get('HDSerialNumber', '')
            MACAddress = post_data.get('MACAddress', '')
            MachineID = post_data.get('MachineID', '')
            VersionNo = post_data.get('VersionNo', '')
            My2PIN = post_data.get('My2PIN', '')

            #server side check to see is all required input is passed
            common_util.check_if_present(UserKey, AppName, UserId, Password, EncryKey, OAS_key, ClientCode, Password_, HDSerialNumber,
                                         MACAddress, MachineID, VersionNo, My2PIN)

            url = env.get('urls', 'LoginRequestV2')
            header = {
                "Content-Type": "application/json",
                "Ocp-Apim-Subscription-Key": OAS_key
            }
            payload = {
                "head": {
                        "requestCode": "IIFLMarRQLoginForVendor",
                        "key": UserKey,
                        "appVer": "1.0",
                        "appName": AppName,
                        "osName": "Android",
                        "userId": UserId,
                        "password": Password
                    },
                "body": {
                    "ClientCode": common_util.auth.encrypt(ClientCode),
                    "Password": common_util.auth.encrypt(Password_),
                    "HDSerialNumber": HDSerialNumber,
                    "MACAddress": MACAddress,
                    "MachineID": MachineID,
                    "VersionNo": VersionNo,
                    "RequestNo": 1,
                    "My2PIN": common_util.auth.encrypt(My2PIN),
                    "ConnectionType": 1,
                    "LocalIP": "192.168.88.41",
                    "PublicIP": "192.168.88.42"
                 }
            }
            print (payload)
            cookies = req.cookies.RequestsCookieJar()
            cookies.set('IIFLMarcookie', cookie_, domain = 'dataservice.iifl.in')
            resp = req.post(url = url, headers = header, data = json.dumps(payload), cookies = cookies)
            
            if not resp.status_code == 200:
                raise common_util.custom_exceptions.UserException(ref_strings.Common.bad_response)

            resp = json.loads(resp.text)
            return common_util.send_sucess_message(resp)

    except custom_exceptions.UserException as e:
        return common_util.send_sucess_message({'msg': str(e)})
    except Exception as e:
        error = common_util.get_error_traceback(sys, e)
        print(error)
        return common_util.send_error_message()
Beispiel #4
0
def PreOrdMarginCalculation(requests):
    try:
        if requests.method == 'POST':
            post_data = json.loads(requests.body)

            UserKey = env.get('credentials', 'UserKey')
            AppName = env.get('credentials', 'AppName')
            UserId = env.get('credentials', 'UserId')
            Password = env.get('credentials', 'Password')
            EncryKey = env.get('credentials', 'EncryKey')
            OAS_key = env.get('credentials', 'Ocp-Apim-Subscription-Key')
            
            payload = {
                "head": {
                        "requestCode": "IIFLMarRQPreOrdMarCal",
                        "key": UserKey,
                        "appVer": "1.0",
                        "appName": AppName,
                        "osName": "Android",
                        "userId": UserId,
                        "password": Password
                    },
                    "body": {
                        "OrderRequestorCode" : post_data.get('OrderRequestorCode'),
                        "Exch": post_data.get('Exch'),
                        "ExchangeType": post_data.get('ExchangeType'),
                        "ClientCode" : post_data.get('ClientCode'),
                        "ScripCode" : post_data.get('ScripCode'),
                        "PlaceModifyCancel": post_data.get('PlaceModifyCancel'),
                        "TransactionType": post_data.get('TransactionType'),
                        "AtMarket": post_data.get('AtMarket'),
                        "LimitRate": post_data.get('LimitRate'),
                        "WithSL": post_data.get('WithSL'),
                        "SLTriggerRate": post_data.get('SLTriggerRate'),
                        "IsSLTriggered": post_data.get('IsSLTriggered'),
                        "Volume": post_data.get('Volume'),
                        "OldTradedQty": post_data.get('OldTradedQty'),
                        "ProductType": post_data.get('ProductType'),
                        "ExchOrderId" : "96131461", #same as that of order id
                        "ClientIP": "192.168.84.215",
                        "AppSource": int(AppSource)
                    }
            }
            print(payload)
            url = env.get('urls', 'PreOrdMarginCalculation')
            header = {
                "Content-Type": "application/json",
                "Ocp-Apim-Subscription-Key": OAS_key
            }
            cookies = req.cookies.RequestsCookieJar()
            cookies.set('IIFLMarcookie', cookie_, domain = 'dataservice.iifl.in')
    
            resp = req.post(url = url, headers = header, data = json.dumps(payload), cookies = cookies)

            if not resp.status_code == 200:
                raise common_util.custom_exceptions.UserException(ref_strings.Common.bad_response)

            resp = json.loads(resp.text)
            return common_util.send_sucess_message(resp)

    except custom_exceptions.UserException as e:
        return common_util.send_sucess_message({'msg': str(e)})
    except Exception as e:
        error = common_util.get_error_traceback(sys, e)
        print(error)
        return common_util.send_error_message()
Beispiel #5
0
def OrderRequest(requests):
    try:
        if requests.method == 'POST':
            post_data = json.loads(requests.body)

            UserKey = env.get('credentials', 'UserKey')
            AppName = env.get('credentials', 'AppName')
            AppSource = env.get('credentials', 'AppSource')
            UserId = env.get('credentials', 'UserId')
            Password = env.get('credentials', 'Password')
            EncryKey = env.get('credentials', 'EncryKey')
            OAS_key = env.get('credentials', 'Ocp-Apim-Subscription-Key')
            
            payload = {
                "_ReqData" : {
                    "head": {
                            "requestCode": "IIFLMarRQOrdReq",
                            "key": UserKey,
                            "appVer": "1.0",
                            "appName": AppName,
                            "osName": "Android",
                            "userId": UserId,
                            "password": Password
                        },
                    "body": {
                            "ClientCode": post_data.get('ClientCode'),
                            "OrderRequesterCode": post_data.get('ClientCode'),
                            "OrderFor": post_data.get('OrderFor'),
                            "Exchange": post_data.get('Exchange'),
                            "ExchangeType": post_data.get('ExchangeType'),
                            "Price":post_data.get('Price'),
                            
                            "OrderID":3,   #random value
                            
                            "OrderType": post_data.get('OrderType'),
                            "Qty": post_data.get('Qty'),
                            "OrderDateTime": '/Date('+str(common_util.time_milli_second()) + ')/',
                            
                            "TradedQty":0,  #For placing fresh order, value should be 0. For modification/cancellation, send the actual traded qty.


                            "ScripCode": post_data.get('ScripCode'), #stock code

                            "AtMarket": post_data.get('AtMarket', 'false'), #false --> limit order true --> market order
                            "RemoteOrderID": "s000220360", ##unique id for each order

                            "ExchOrderID": "0",  #Send 0 for fresh order and for modify cancel send the exchange order id received from exchange.
                            "DisQty": post_data.get('DisQty'), #display qty 
                            
                            "StopLossPrice": post_data.get('StopLossPrice'),  #shoould be checked outside before implementing here
                            "IsStopLossOrder": post_data.get('IsStopLossOrder', 'false'),

                            "IOCOrder": post_data.get('IOCOrder', 'false'),
                            "IsIntraday": post_data.get('IsIntraday', 'false'),

                            "ValidTillDate":   '/Date('+str(common_util.time_milli_second(expiry_time=True)) + ')/',
                            "PublicIP": "192.168.84.215",
                            "iOrderValidity": post_data.get('iOrderValidity', 0),
                            "IsVTD": post_data.get('IsVTD', 'false'),
                            "AHPlaced": post_data.get('AHPlaced')
                    }
            },
                "AppSource": int(AppSource)
            }
            print (json.dumps(payload))
            url = env.get('urls', 'OrderRequest')
            
            header = {
                "Content-Type": "application/json",
                "Ocp-Apim-Subscription-Key": OAS_key
            }

            cookies = req.cookies.RequestsCookieJar()
            cookies.set('IIFLMarcookie', cookie_, domain = 'dataservice.iifl.in')
            resp = req.post(url = url, headers = header, data = json.dumps(payload), cookies = cookies)

            if not resp.status_code == 200:
                raise common_util.custom_exceptions.UserException(ref_strings.Common.bad_response)

            resp = json.loads(resp.text)
            return common_util.send_sucess_message(resp)

    except custom_exceptions.UserException as e:
        return common_util.send_sucess_message({'msg': str(e)})
    except Exception as e:
        error = common_util.get_error_traceback(sys, e)
        print(error)
        return common_util.send_error_message()