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
 
72
 
73
         return Person.from_dict(data["person"])
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
     @classmethod
97
     @classmethod
76
     def get(cls, person_id: int) -> "Person":
98
     def get(cls, person_id: int) -> "Person":
77
         """ Retrieve a Person by id. """
99
         """ Retrieve a Person by id. """

+ 2 - 2
piket_server/__init__.py

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