def handler(event, context):
    process_name = os.environ["process_name"]
    if (not process_name):
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("process_name not found")})
        }
        return response

    activities = json.loads(event["body"])
    if isinstance(activities, dict):
        activities = [activities]

    issues = []
    for activity in activities:
        issues.append({
            "project_id": activity["project"]["id"],
            "issue_id": activity["id"],
            "type_id": activity["type"]
        })

    if len(issues) == 0:
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("This webhook was ignored")})
        }
        return response

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": json.dumps({"message": message})}
    return response
Beispiel #2
0
def handler(event, context):
    process_name = os.environ["process_name"]
    if (not process_name):
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("process_name not found")})
        }
        return response

    if os.environ["secret"] or "X-Hub-Signature" in event["headers"]:
        secret = os.environ["secret"]
        digest, signature = event["headers"]["X-Hub-Signature"].split("=")
        msg = str(event["body"])
        if not verify_signature(secret, msg, signature, digest):
            response = {
                "statusCode": 403,
                "body":
                json.dumps({"error": _("Secret and Signature mismatch")})
            }
            return response

    event_type = event['headers']['X-GitHub-Event']
    payload = json.loads(event["body"])

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": json.dumps({"message": message})}
    return response
def handler(event, context):
    params = parse_qs(event["body"])

    token = params["token"][0]
    if token != os.environ["verification_token"]:
        message = _("Request token does not match")
        response = {"statusCode": 403, "error": message}
        return response

    process_name = None
    if "text" in params:
        process_name = params["text"][0]

    available_processes = [
        s.strip() for s in os.environ["available_processes"].split(',')
    ]
    if (not process_name or process_name not in available_processes):
        message = _("Available process name are {}").format(
            ", ".join(available_processes))
        response = {"statusCode": 200, "body": message}
        return response

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": message}
    return response
Beispiel #4
0
def handler(event, context):
    languages = [os.environ["language"]]
    if "Accept-Language" in event["headers"]:
        languages = [
            s.split(";")[0]
            for s in event["headers"]["Accept-Language"].split(',')
        ]
    trans = gettext.translation('messages',
                                localedir='locale',
                                languages=languages,
                                fallback=True)
    trans.install()

    env = jinja2.Environment(loader=jinja2.FileSystemLoader('./templates',
                                                            encoding='utf8'),
                             extensions=['jinja2.ext.i18n'])
    env.install_gettext_translations(trans)

    process_name = None
    if event["body"] is not None:
        params = parse_qs(event["body"])
        if "process_name" in params:
            process_name = params["process_name"][0]
    elif event["queryStringParameters"] is not None:
        params = event["queryStringParameters"]
        if "process_name" in params:
            process_name = params["process_name"]

    available_processes = [
        s.strip() for s in os.environ["available_processes"].split(',')
    ]
    if (not process_name or process_name not in available_processes):
        tpl = env.get_template('request.tpl.html')
        url = "https://" + event["requestContext"]["domainName"] + event[
            "requestContext"]["path"]
        response = {
            "statusCode":
            200,
            "headers": {
                'Content-Type': 'text/html;charset=UTF-8'
            },
            "body":
            tpl.render({
                "available_processes": available_processes,
                "url": url
            })
        }
        return response

    message = uipath.start_jobs(process_name)
    tpl = env.get_template('response.tpl.html')
    response = {
        "statusCode": 200,
        "headers": {
            'Content-Type': 'text/html;charset=UTF-8'
        },
        "body": tpl.render({"message": message})
    }
    return response
def handler(event, context):
    process_name = None
    if "process_name" in event["placementInfo"]["attributes"]:
        process_name = event["placementInfo"]["attributes"]["process_name"]

    if (not process_name):
        response = {
            "statusCode": 200,
            "body": json.dumps({
                "message": _("process_name not found")
            })
        }
        return response

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": json.dumps({"message": message})}
    return response
def handler(event, context):
    process_name = os.environ["process_name"]
    if (not process_name):
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("process_name not found")})
        }
        return response

    if os.environ["secret"] or "X-Hook-Secret" in event["headers"]:
        secret = os.environ["secret"]
        signature = event["headers"]["X-Hook-Secret"]
        msg = str(event["body"])
        if not verify_signature(secret, msg, signature):
            response = {
                "statusCode": 403,
                "body":
                json.dumps({"error": _("Secret and Signature mismatch")})
            }
            return response

    events = json.loads(event["body"])
    if isinstance(events, dict):
        events = [events]

    accepted_events = []
    for event in events:
        if event["eventType"] in valid_events:
            accepted_events.append({
                "webhookId": event["webhookId"],
                "eventType": event["eventType"]
            })

    if len(accepted_events) == 0:
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("This webhook was ignored")})
        }
        return response

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": json.dumps({"message": message})}
    return response
Beispiel #7
0
def handler(event, context):
    body = json.loads(event["body"])

    token = body["token"]
    if token != os.environ["verification_token"]:
        response = {
            "statusCode": 403,
            "error": json.dumps({"text": _("Request token does not match")})
        }
        return response

    if body["type"] != "MESSAGE":
        response = {
            "statusCode": 200,
            "body": json.dumps({"message": _("This webhook was ignored")})
        }
        return response

    process_name = body["message"]["argumentText"].strip()
    available_processes = [
        s.strip() for s in os.environ["available_processes"].split(',')
    ]
    if (not process_name or process_name not in available_processes):
        response = {
            "statusCode":
            200,
            "body":
            json.dumps({
                "text":
                _("Available process name are {}").format(
                    ", ".join(available_processes))
            })
        }
        return response

    message = uipath.start_jobs(process_name)
    response = {"statusCode": 200, "body": json.dumps({"text": message})}
    return response