Browse Source

make_active

Maarten van den Berg 6 years ago
parent
commit
6ffbd60188
2 changed files with 24 additions and 2 deletions
  1. 22 0
      piket_client/model.py
  2. 2 2
      piket_server/__init__.py

+ 22 - 0
piket_client/model.py

@@ -72,6 +72,28 @@ class Person(NamedTuple):
72 72
 
73 73
         return Person.from_dict(data["person"])
74 74
 
75
+    def make_active(self) -> "Person":
76
+        req = requests.patch(urljoin(SERVER_URL, f"people/{self.person_id}"),
77
+                json={'person': {'active':True}})
78
+
79
+        try:
80
+            data = req.json()
81
+        except ValueError:
82
+            LOG.error(
83
+                "Did not get JSON on updating Person (%s): %s",
84
+                req.status_code,
85
+                req.content,
86
+            )
87
+            return None
88
+
89
+        if "error" in data or req.status_code != 200:
90
+            LOG.error("Could not update Person (%s): %s", req.status_code, data)
91
+            return None
92
+
93
+        return Person.from_dict(data["person"])
94
+
95
+
96
+
75 97
     @classmethod
76 98
     def get(cls, person_id: int) -> "Person":
77 99
         """ Retrieve a Person by id. """

+ 2 - 2
piket_server/__init__.py

@@ -199,7 +199,7 @@ def add_consumption(person_id: int):
199 199
 def update_person(person_id: int):
200 200
     person = Person.query.get_or_404(person_id)
201 201
 
202
-    data = requests.json['person']
202
+    data = request.json['person']
203 203
 
204 204
     if 'active' in data:
205 205
         person.active = data['active']
@@ -207,7 +207,7 @@ def update_person(person_id: int):
207 207
         db.session.add(person)
208 208
         db.session.commit()
209 209
 
210
-        return jsonify(person=person)
210
+        return jsonify(person=person.as_dict)
211 211
 
212 212
 
213 213
 @app.route("/people/<int:person_id>/add_consumption/<int:ct_id>", methods=["POST"])