added predicates
This commit is contained in:
parent
fb00516d6c
commit
fabc1e7eff
|
@ -1,25 +1,22 @@
|
||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
|
|
||||||
from . import abstract
|
from mobilizon_bots.publishers import abstract
|
||||||
from . import telegram
|
|
||||||
|
|
||||||
# WIP
|
|
||||||
# from . import twitter
|
|
||||||
|
|
||||||
|
|
||||||
def run(publishers: Iterable[abstract.AbstractPublisher]) -> dict:
|
def run(publishers: Iterable[abstract.AbstractPublisher]) -> dict:
|
||||||
invalid_credentials, invalid_event = [], []
|
invalid_credentials, invalid_event = [], []
|
||||||
for p in publishers:
|
for p in publishers:
|
||||||
if not p.validate_credentials():
|
if not p.are_credetials_valid():
|
||||||
invalid_credentials.append(p)
|
invalid_credentials.append(p)
|
||||||
if not p.validate_event():
|
if not p.is_event_valid():
|
||||||
invalid_event.append(p)
|
invalid_event.append(p)
|
||||||
if invalid_credentials or invalid_event:
|
if invalid_credentials or invalid_event:
|
||||||
|
# TODO: consider to use exceptions or data class if necessary
|
||||||
return {
|
return {
|
||||||
'status': 'fail',
|
"status": "fail",
|
||||||
'description': "Validation failed for at least 1 publisher",
|
"description": "Validation failed for at least 1 publisher",
|
||||||
'invalid_credentials': invalid_credentials,
|
"invalid_credentials": invalid_credentials,
|
||||||
'invalid_event': invalid_event,
|
"invalid_event": invalid_event,
|
||||||
}
|
}
|
||||||
failed_publishers, successful_publishers = [], []
|
failed_publishers, successful_publishers = [], []
|
||||||
for p in publishers:
|
for p in publishers:
|
||||||
|
@ -29,12 +26,12 @@ def run(publishers: Iterable[abstract.AbstractPublisher]) -> dict:
|
||||||
failed_publishers.append(p)
|
failed_publishers.append(p)
|
||||||
if failed_publishers:
|
if failed_publishers:
|
||||||
return {
|
return {
|
||||||
'status': 'fail',
|
"status": "fail",
|
||||||
'description': "Posting failed for at least 1 publisher",
|
"description": "Posting failed for at least 1 publisher",
|
||||||
'failed_publishers': failed_publishers,
|
"failed_publishers": failed_publishers,
|
||||||
'successful_publishers': successful_publishers,
|
"successful_publishers": successful_publishers,
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
'status': 'success',
|
"status": "success",
|
||||||
'description': "https://www.youtube.com/watch?v=2lHgmC6PBBE",
|
"description": "https://www.youtube.com/watch?v=2lHgmC6PBBE",
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,21 @@ class AbstractPublisher(ABC):
|
||||||
"""
|
"""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def are_credetials_valid(self):
|
||||||
|
try:
|
||||||
|
self.validate_credentials()
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def is_event_valid(self):
|
||||||
|
try:
|
||||||
|
self.validate_event()
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def validate_event(self) -> bool:
|
def validate_event(self) -> bool:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue