From 6dc8f0a79d9ec553a8c8956fd1183ba1ed990c40 Mon Sep 17 00:00:00 2001 From: Terrtia Date: Wed, 27 May 2020 20:43:00 +0200 Subject: [PATCH] chg: [API + item library] add a way to check if a user can access the API + item import (use item_basic) --- bin/lib/item_basic.py | 14 ++++++++++++++ bin/packages/Correlation.py | 10 +++++----- bin/packages/Cryptocurrency.py | 1 - bin/packages/Item.py | 11 +++-------- bin/packages/Pgp.py | 1 - var/www/modules/restApi/Flask_restApi.py | 9 +++++++++ 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/bin/lib/item_basic.py b/bin/lib/item_basic.py index ac5945e7..98a6891c 100755 --- a/bin/lib/item_basic.py +++ b/bin/lib/item_basic.py @@ -26,6 +26,20 @@ def get_item_filepath(item_id): filename = os.path.join(PASTES_FOLDER, item_id) return os.path.realpath(filename) +def get_item_date(item_id, add_separator=False): + l_directory = item_id.split('/') + if add_separator: + return '{}/{}/{}'.format(l_directory[-4], l_directory[-3], l_directory[-2]) + else: + return '{}{}{}'.format(l_directory[-4], l_directory[-3], l_directory[-2]) + +# # TODO: add an option to check the tag +def is_crawled(item_id): + return item_id.startswith('crawled') + +def get_item_domain(item_id): + return item_id[19:-36] + def add_item_parent_by_parent_id(parent_type, parent_id, item_id): parent_item_id = get_obj_id_item_id(parent_type, parent_id) if parent_item_id: diff --git a/bin/packages/Correlation.py b/bin/packages/Correlation.py index 891373a4..f833371d 100755 --- a/bin/packages/Correlation.py +++ b/bin/packages/Correlation.py @@ -7,10 +7,10 @@ import redis sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/')) import ConfigLoader +import item_basic sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages/')) import Date -import Item #import Tag config_loader = ConfigLoader.ConfigLoader() @@ -335,8 +335,8 @@ class Correlation(object): r_serv_metadata.sadd('item_{}_{}:{}'.format(self.correlation_name, subtype, item_id), obj_id) # domain - if Item.is_crawled(item_id): - domain = Item.get_item_domain(item_id) + if item_basic.is_crawled(item_id): + domain = item_basic.get_item_domain(item_id) self.save_domain_correlation(domain, subtype, obj_id) def delete_item_correlation(self, subtype, obj_id, item_id, item_date): @@ -371,13 +371,13 @@ class Correlation(object): if obj2_type == 'domain': self.save_domain_correlation(obj2_id, subtype, obj_id) elif obj2_type == 'item': - self.save_item_correlation(subtype, obj_id, obj2_id, Item.get_item_date(obj2_id)) + self.save_item_correlation(subtype, obj_id, obj2_id, item_basic.get_item_date(obj2_id)) def delete_obj_relationship(self, subtype, obj_id, obj2_type, obj2_id): if obj2_type == 'domain': self.delete_domain_correlation(obj2_id, subtype, obj_id) elif obj2_type == 'item': - self.delete_item_correlation(subtype, obj_id, obj2_id, Item.get_item_date(obj2_id)) + self.delete_item_correlation(subtype, obj_id, obj2_id, item_basic.get_item_date(obj2_id)) def create_correlation(self, subtype, obj_id, obj_meta): res = self.sanythise_correlation_types([subtype], r_boolean=True) diff --git a/bin/packages/Cryptocurrency.py b/bin/packages/Cryptocurrency.py index ec1636c3..9ed8ec59 100755 --- a/bin/packages/Cryptocurrency.py +++ b/bin/packages/Cryptocurrency.py @@ -9,7 +9,6 @@ from hashlib import sha256 sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages')) import Correlation -import Item sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/')) import ConfigLoader diff --git a/bin/packages/Item.py b/bin/packages/Item.py index e319d1bf..dc8fdccd 100755 --- a/bin/packages/Item.py +++ b/bin/packages/Item.py @@ -45,11 +45,7 @@ def get_item_filepath(item_id): return item_basic.get_item_filepath(item_id) def get_item_date(item_id, add_separator=False): - l_directory = item_id.split('/') - if add_separator: - return '{}/{}/{}'.format(l_directory[-4], l_directory[-3], l_directory[-2]) - else: - return '{}{}{}'.format(l_directory[-4], l_directory[-3], l_directory[-2]) + return item_basic.get_item_date(item_id, add_separator=add_separator) def get_source(item_id): return item_id.split('/')[-5] @@ -270,9 +266,8 @@ def get_item_list_desc(list_item_id): desc_list.append( {'id': item_id, 'date': get_item_date(item_id), 'tags': Tag.get_obj_tag(item_id)} ) return desc_list -# # TODO: add an option to check the tag def is_crawled(item_id): - return item_id.startswith('crawled') + return item_basic.is_crawled(item_id) def is_onion(item_id): is_onion = False @@ -290,7 +285,7 @@ def is_item_in_domain(domain, item_id): return is_in_domain def get_item_domain(item_id): - return item_id[19:-36] + return item_basic.get_item_domain(item_id) def get_domain(item_id): item_id = item_id.split('/') diff --git a/bin/packages/Pgp.py b/bin/packages/Pgp.py index f6be3cbd..9012d1cc 100755 --- a/bin/packages/Pgp.py +++ b/bin/packages/Pgp.py @@ -6,7 +6,6 @@ import sys import redis sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages')) -import Item import Correlation sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/')) diff --git a/var/www/modules/restApi/Flask_restApi.py b/var/www/modules/restApi/Flask_restApi.py index 78c4372d..3b6363ab 100644 --- a/var/www/modules/restApi/Flask_restApi.py +++ b/var/www/modules/restApi/Flask_restApi.py @@ -604,5 +604,14 @@ def import_json_item(): res = importer.api_import_json_item(data_json) return Response(json.dumps(res[0]), mimetype='application/json'), res[1] +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# +# +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +@restApi.route("api/v1/ping", methods=['GET']) +@token_required('user') +def v1_ping(): + return Response(json.dumps({'status': 'pong'}), mimetype='application/json'), 200 + # ========= REGISTRATION ========= app.register_blueprint(restApi, url_prefix=baseUrl)