Example #1
0
class Notification(db.Model):
    '''
    This class/table represents a notification to a user
    '''
    id = db.Column(db.Integer, primary_key=True)
    user = db.Column(db.VARCHAR(12))
    batchjob_id = db.Column(db.VARCHAR(45))
    seen = db.Column(db.Integer, default=0, nullable=False)
    occurred_on = db.Column(db.DATETIME(), default=datetime.utcnow)

    def to_dict(self):
        data = {
            'id': self.id,
            'user': self.user,
            'batchjob_id': self.batchjob_id,
            'seen': self.seen,
            'occurred_on': self.occurred_on.isoformat() + 'Z'
        }
        return data

    def from_dict(self, data):
        for field in ['user', 'batchjob_id', 'seen', 'occurred_on']:
            if field in data:
                setattr(self, field, data[field])

    def __repr__(self):
        return '<Notification {}>'.format(self.id)
Example #2
0
class BatchJob(db.Model):
    '''
    Represeents an AWS Batch Job, where id is the AWS Batch Job ID.
    If this gets updated, make sure to update in batchEventTrigger-lambda function
    '''
    id = db.Column(db.VARCHAR(45), primary_key=True)
    name = db.Column(db.VARCHAR(255))
    command = db.Column(db.VARCHAR(1024))
    user = db.Column(db.VARCHAR(12))
    submitted_on = db.Column(db.DATETIME(), default=datetime.utcnow)
    log_stream_name = db.Column(db.VARCHAR(255))
    status = db.Column(db.VARCHAR(15))
    viewed = db.Column(db.Integer, default=1, nullable=False)

    def to_dict(self):
        data = {
            'id': self.id,
            'name': self.name,
            'command': self.command,
            'user': self.user,
            'submitted_on': self.submitted_on.isoformat() + 'Z',
            'log_stream_name': self.log_stream_name,
            'status': self.status,
            'viewed': self.viewed
        }
        return data

    def from_dict(self, data):
        for field in ['log_stream_name']:
            if field in data:
                setattr(self, field, data[field])

    def __repr__(self):
        return '<BatchJob {}>'.format(self.id)