def open_session(self, app, request): try: if 'session_id' in request.cookies: session_response = requests.get(service_uris['sessions'] + '/' + request.cookies['session_id']) if session_response.status_code == 200: session = session_response.json() if parse_datetime(session['last_used_at']) + config['website']['session_expires_after'] > datetime.now(): return Session(session) session_response = requests.post(service_uris['sessions'], json={ 'last_used_at': render_datetime(datetime.now()), }) if session_response.status_code == 201: session = session_response.json() return Session(session) except requests.exceptions.RequestException: return Session({ 'id': None, 'user_id': None, 'data_items': [], })
def post_to_order(): order_items = [] for clothes_id, quantity in flask.session['cart'].items(): order_items.append({ 'clothes_id': int(clothes_id), 'quantity': quantity, }) try: order_response = requests.post(service_uris['orders'], json={ 'user_id': flask.session.user_id, 'opened_at': render_datetime(datetime.now()), 'items': order_items, 'deliver_to': flask.request.form['deliver_to'], }) assert order_response.status_code == 201 del flask.session['cart'] except requests.exceptions.RequestException: pass return flask.redirect('/orders/', code=303)
def to_json(self): return { 'user_id': self.user_id, 'last_used_at': render_datetime(datetime.now()), 'data_items': [{'key': key, 'value': value} for key, value in self.data.items()] }