summaryrefslogtreecommitdiffstats
path: root/result_collection_api/resources/pod_models.py
blob: 5c4ef7221ad0abd5f60a2052357ec8a6be7aad4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
from models import MetaCreateResponse, MetaGetResponse


class PodCreateRequest(object):
    def __init__(self, name='', mode='', details=''):
        self.name = name
        self.mode = mode
        self.details = details

    def format(self):
        return {
            "name": self.name,
            "mode": self.mode,
            "details": self.details,
        }

    @staticmethod
    def from_dict(req_dict):
        if req_dict is None:
            return None

        req = PodCreateRequest()
        req.name = req_dict.get('name')
        req.mode = req_dict.get('mode')
        req.details = req_dict.get('details')
        return req


class Pod(PodCreateRequest):
    """ describes a POD platform """
    def __init__(self, name='', mode='', details='', _id='', create_date=''):
        super(Pod, self).__init__(name, mode, details)
        self._id = _id
        self.creation_date = create_date

    @staticmethod
    def pod_from_dict(pod_dict):
        if pod_dict is None:
            return None

        p = Pod()
        p._id = pod_dict.get('_id')
        p.creation_date = str(pod_dict.get('creation_date'))
        p.name = pod_dict.get('name')
        p.mode = pod_dict.get('mode')
        p.details = pod_dict.get('details')
        return p

    def format(self):
        f = super(Pod, self).format()
        f['creation_date'] = str(self.creation_date)
        return f

    def format_http(self):
        f = self.format()
        f['_id'] = str(self._id)
        return f


class PodCreateResponse(object):
    def __init__(self, pod=None, meta=None):
        self.pod = pod
        self.meta = meta

    @staticmethod
    def from_dict(res_dict):
        if res_dict is None:
            return None

        res = PodCreateResponse()
        res.pod = Pod.pod_from_dict(res_dict.get('pod'))
        res.meta = MetaCreateResponse.from_dict(res_dict.get('meta'))
        return res


class PodGetResponse(PodCreateRequest):
    def __init__(self, name='', mode='', details='', create_date=''):
        self.creation_date = create_date
        super(PodGetResponse, self).__init__(name, mode, details)

    @staticmethod
    def from_dict(req_dict):
        if req_dict is None:
            return None

        res = PodGetResponse()
        res.creation_date = str(req_dict.get('creation_date'))
        res.name = req_dict.get('name')
        res.mode = req_dict.get('mode')
        res.details = req_dict.get('details')
        return res


class PodsGetResponse(object):
    def __init__(self, pods=[], meta=None):
        self.pods = pods
        self.meta = meta

    @staticmethod
    def from_dict(res_dict):
        if res_dict is None:
            return None

        res = PodsGetResponse()
        for pod in res_dict.get('pods'):
            res.pods.append(PodGetResponse.from_dict(pod))
        res.meta = MetaGetResponse.from_dict(res_dict.get('meta'))
        return res