Skip to content

Commit 01bbf09

Browse files
committed
Always act within Flask app context, improved query performance, fixed logger
1 parent 3198df7 commit 01bbf09

File tree

9 files changed

+35
-20
lines changed

9 files changed

+35
-20
lines changed

ghost_sql_sanitation/__init__.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
"""Appliction entry point."""
2-
from flask import Flask, make_response, jsonify
3-
from .database import Database
2+
from flask import Flask
43
from config import db_pem, db_uri, sql_folder
5-
from .queries import SQLFetcher
4+
from .database import Database
5+
6+
7+
db = Database(db_pem, db_uri)
68

79

810
def main(request):
911
"""Endpoint entry point."""
10-
db = Database(db_pem, db_uri)
11-
fetcher = SQLFetcher(sql_folder)
12-
queries = fetcher.get_queries()
13-
results = db.run_query(queries)
14-
return make_response(jsonify(results), 200)
12+
app = Flask(__name__)
13+
with app.app_context():
14+
from .run import run_queries
15+
16+
return run_queries(db)

ghost_sql_sanitation/database.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from sqlalchemy import create_engine, MetaData
33
from loguru import logger
44

5-
logger.add(stdout, format="{time} {message}", level="INFO")
5+
logger.add(stdout, format="{time} {message}", level="INFO", filter="database")
66

77

88
class Database:
@@ -25,9 +25,9 @@ def run_query(self, sql_queries):
2525
results = self.engine.execute(v)
2626
affected_rows = results.rowcount
2727
logger.info(f'Modified {affected_rows} rows.')
28-
return affected_rows
28+
return self.__construct_response(affected_rows)
2929

3030
@staticmethod
31-
def __construct_response(num_rows):
31+
def __construct_response(affected_rows):
3232
"""Summarize results of an executed query."""
33-
return f'Modified {num_rows} rows.'
33+
return f'Modified {affected_rows} rows.'

ghost_sql_sanitation/queries.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from os.path import isfile, join
55
from loguru import logger
66

7-
logger.add(stdout, format="{time} {message}", level="INFO")
7+
logger.add(stdout, format="{time} {message}", level="INFO", filter="queries")
88

99

1010
class SQLFetcher:

ghost_sql_sanitation/run.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from flask import Flask, make_response, jsonify
2+
from flask import current_app as app
3+
from ghost_sql_sanitation.queries import SQLFetcher
4+
from config import sql_folder
5+
6+
7+
def run_queries(db):
8+
fetcher = SQLFetcher(sql_folder)
9+
queries = fetcher.get_queries()
10+
results = db.run_query(queries)
11+
return make_response(jsonify(results), 200)

queries/meta-og-description.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ SET
66
WHERE
77
posts_meta.og_description IS NULL
88
AND posts.custom_excerpt IS NOT NULL
9-
AND posts.id = posts_meta.post_id;;
9+
AND posts.id = posts_meta.post_id;

queries/meta-og-image.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
UPDATE
2-
posts,
2+
posts,
33
posts_meta
44
SET
55
posts_meta.og_image = posts.feature_image
66
WHERE
7-
posts.feature_image IS NOT NULL
7+
posts.feature_image <> posts_meta.og_image
88
AND posts.id = posts_meta.post_id;

queries/meta-og-title.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ SET
66
WHERE
77
posts_meta.og_title IS NULL
88
AND posts.title IS NOT NULL
9-
AND posts.id = posts_meta.post_id;;
9+
AND posts.id = posts_meta.post_id;
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
UPDATE
22
posts_meta
33
SET
4-
meta_title = REPLACE(meta_title, ' | ', ' - ');
4+
meta_title = REPLACE(meta_title, ' | ', ' - ')
5+
WHERE
6+
meta_title LIKE '%%|%%';

queries/meta-twitter-image.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
UPDATE
2-
posts,
2+
posts,
33
posts_meta
44
SET
55
posts_meta.twitter_image = posts.feature_image
66
WHERE
7-
posts.feature_image IS NOT NULL
7+
posts.feature_image <> posts_meta.twitter_image
88
AND posts.id = posts_meta.post_id;

0 commit comments

Comments
 (0)