Ejemplo n.º 1
0
def delete_by_id(event, context):
    """
    Delete task by id
    """
    logging.info('event: {}'.format(event))

    params = get_path_parameters(event)

    try:
        repo = TaskRepository()
        task = repo.get_task_by_task_id(params['id'])
        if task is None:
            return {
                'statusCode': 400,
                'body': json.dumps({'error': 'Entry not found'})
            }

        repo.delete_task_by_task_id(task.task_id)
        return {'statusCode': 204}
    except Exception as e:
        logging.error(e)
        return {
            'statusCode': 500,
            'body': json.dumps({'error': 'Internal Error: {}'.format(e)})
        }
Ejemplo n.º 2
0
def modify_task(event, context):
    logging.info('event: {}'.format(event))

    try:
        body = get_body(event)
    except json.JSONDecodeError:
        return {
            'statusCode': 400,
            'body': json.dumps({'error': 'Bad parameter(s) in request'})
        }

    try:
        repo = TaskRepository()
        task = repo.get_task_by_task_id(body['task_id'])

        if task is None:
            return {
                'statusCode': 400,
                'body': json.dumps({'error': 'Entry not found'})
            }

        for key, value in body:
            setattr(task, key, value)

        repo.update_task(task)
        return {'statusCode': 200, 'body': json.dumps(task.__dict__)}
    except Exception as e:
        logging.error(e)
        return {
            'statusCode': 500,
            'body': json.dumps({'error': 'Internal Error: {}'.format(e)})
        }
Ejemplo n.º 3
0
def handler(event, context):
    logging.info('event: {}'.format(event))

    message = json.loads(event['Records'][0]['Sns']['Message'])
    method = message['method']
    body = message['body']

    repo = TaskRepository()
    if message['method'] == 'ADD':
        task = TaskModel(
            task_id=uuid.uuid4(),
            scheduled=datetime.datetime.strptime(body['scheduled'], '%Y-%m-%d %H:%M:%S'),
            task_type=body['task_type'],
            invoke_method=body['invoke_method'],
            call_arn_url=body['call_arn_url'],
            parameters=body['parameters'],
            data=body['data'])
        repo.add_task(task)

    elif method == 'UPDATE':
        task = repo.get_task_by_task_id(body['task_id'])

        if task is not None:
            for key, value in body.items():
                setattr(task, key, value)
            repo.update_task(task)
        else:
            logging.error('Entry not found')

    elif method == 'DELETE':
        task = repo.get_task_by_task_id(body['id'])
        if task is not None:
            repo.delete_task_by_task_id(task.task_id)
        else:
            logging.error('Entry not found')

    else:
        logging.error('Unknown method')