Skip to content

Commit 773d778

Browse files
committed
store ip info as jsonb instead of text string and add country field to table
1 parent 2f817f5 commit 773d778

File tree

1 file changed

+6
-12
lines changed
  • src/flask_track_usage/storage

1 file changed

+6
-12
lines changed

src/flask_track_usage/storage/sql.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ def set_up(self, engine=None, metadata=None, table_name="flask_usage",
7979
"""
8080

8181
import sqlalchemy as sql
82+
from sqlalchemy.dialects import postgresql
8283
if db:
8384
self._eng = db.engine
8485
self._metadata = db.metadata
@@ -104,9 +105,10 @@ def set_up(self, engine=None, metadata=None, table_name="flask_usage",
104105
sql.Column('view_args', sql.String(64)),
105106
sql.Column('status', sql.Integer),
106107
sql.Column('remote_addr', sql.String(24)),
108+
sql.Column('country', sql.String(64)),
107109
sql.Column('xforwardedfor', sql.String(24)),
108110
sql.Column('authorization', sql.Boolean),
109-
sql.Column('ip_info', sql.String(1024)),
111+
sql.Column('ip_info', postgresql.JSONB),
110112
sql.Column('path', sql.String(128)),
111113
sql.Column('speed', sql.Float),
112114
sql.Column('datetime', sql.DateTime),
@@ -131,16 +133,7 @@ def store(self, data):
131133
"""
132134
user_agent = data["user_agent"]
133135
utcdatetime = datetime.datetime.fromtimestamp(data['date'])
134-
if data["ip_info"]:
135-
t = {}
136-
for key in data["ip_info"]:
137-
t[key] = data["ip_info"][key]
138-
if not len(json.dumps(t)) < 1024:
139-
del t[key]
140-
break
141-
ip_info_str = json.dumps(t)
142-
else:
143-
ip_info_str = None
136+
144137
with self._eng.begin() as con:
145138
stmt = self.track_table.insert().values(
146139
url=data['url'],
@@ -156,7 +149,8 @@ def store(self, data):
156149
remote_addr=data["remote_addr"],
157150
xforwardedfor=data["xforwardedfor"],
158151
authorization=data["authorization"],
159-
ip_info=ip_info_str,
152+
country=data["country"],
153+
ip_info=data["ip_info"],
160154
path=data["path"],
161155
speed=data["speed"],
162156
datetime=utcdatetime,

0 commit comments

Comments
 (0)