Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion mapactionpy_controller/event.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import json
import urllib
import urllib.error
import os
import pycountry
from mapactionpy_controller import _get_validator_for_config_schema
Expand Down Expand Up @@ -27,17 +29,36 @@ def __init__(self, event_file):
self.affected_country_iso3 = event_def['affected_country_iso3'].lower()
self.time_zone = event_def['time_zone']
self.language_iso2 = event_def['language_iso2']
self.operation_id = (event_def['operation_id']).lower()
# self.operation_id = (event_def['operation_id']).lower()
self.default_source_organisation = event_def['default_source_organisation']
self.default_source_organisation_url = event_def['default_source_organisation_url']
self.default_publishing_base_url = event_def['default_publishing_base_url']
op_id = (event_def['operation_id']).lower()
self.operation_id = _is_valid_group_id(op_id, self.default_publishing_base_url)
self.deployment_primary_email = event_def['deployment_primary_email']
self.default_disclaimer_text = event_def['default_disclaimer_text']
self.default_donor_credits = event_def['default_donor_credits']
# self.donors = event_def['donors']
self.country_name = _parse_country_name(event_def)


def _is_valid_group_id(operation_id, default_publishing_base_url):
# Check if valid group number then return
url = default_publishing_base_url + '/api/3/action/group_show?id={}'.format(operation_id)
try:
response = urllib.request.urlopen(url)
assert response.code == 200
except urllib.error.HTTPError as e:
print(e.code)
raise ValueError('Not a valid URL, error = {}'.format(e.code))
response_dict = json.loads(response.read())
if response_dict['success'] == True:
print("Success")
else:
raise ValueError('Not a valid Group ID on the target CKAN Site')
return operation_id


def _parse_country_name(event_def):
"""
Checks the optional `country_name` value of the event description file and set the cooresponsing
Expand Down