From 85b2100e60ab9f56a3a93ef8d40c2ba1063cf214 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Thu, 17 Oct 2019 13:26:20 +0200
Subject: [PATCH] Add to_dict methods

---
 app/models.py | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/app/models.py b/app/models.py
index e4ff1733..0ae9fdc1 100644
--- a/app/models.py
+++ b/app/models.py
@@ -252,7 +252,7 @@ class AnonymousUser(AnonymousUserMixin):
 
 class JobInput(db.Model):
     """
-    Class to define Files.
+    Class to define JobInputs.
     """
     __tablename__ = 'job_inputs'
     # Primary key
@@ -260,10 +260,21 @@ class JobInput(db.Model):
     filename = db.Column(db.String(255))
     job_id = db.Column(db.Integer, db.ForeignKey('jobs.id'))
 
+    def __repr__(self):
+        """
+        String representation of the JobInput. For human readability.
+        """
+        return '<JobInput %r>' % self.filename
+
+    def to_dict(self):
+        return {'id': self.id,
+                'filename': self.filename,
+                'job_id': self.job_id}
+
 
 class JobResult(db.Model):
     """
-    Class to define Files.
+    Class to define JobResults.
     """
     __tablename__ = 'job_results'
     # Primary key
@@ -271,6 +282,17 @@ class JobResult(db.Model):
     filename = db.Column(db.String(255))
     job_id = db.Column(db.Integer, db.ForeignKey('jobs.id'))
 
+    def __repr__(self):
+        """
+        String representation of the JobResult. For human readability.
+        """
+        return '<JobResult %r>' % self.filename
+
+    def to_dict(self):
+        return {'id': self.id,
+                'filename': self.filename,
+                'job_id': self.job_id}
+
 
 class Job(db.Model):
     """
@@ -319,8 +341,10 @@ class Job(db.Model):
                 'description': self.description,
                 'end_date': (self.end_date.timestamp() if self.end_date else
                              None),
+                'inputs': [input.to_dict() for input in self.inputs],
                 'mem_mb': self.mem_mb,
                 'n_cores': self.n_cores,
+                'results': [result.to_dict() for result in self.results],
                 'service': self.service,
                 'service_args': self.service_args,
                 'service_version': self.service_version,
-- 
GitLab