Example #1
0
 async def get(self, request, id):
     with db_session:
         if id == 'all':
             return self.response_status(200,
                                         Lab.select(lambda x: x.active))
         if not Lab.exists(id=id):
             return self.response_status(404)
         return self.response_status(200, Lab.select(x.id == id
                                                     and x.active))
Example #2
0
 async def delete(self, request, id):
     with db_session:
         if not Lab.exists(id=id):
             return self.response_status(404)
         try:
             Lab.get_for_update(id=id)
             Lab[id].set(modified=datetime.now(), active=False)
         except Exception as e:
             return self.response_status(500)
         else:
             return self.response_status(200, Lab[id])
Example #3
0
 async def patch(self, request, id):
     req = request.form
     with db_session:
         if not Lab.exists(id=id):
             return self.response_status(404)
         if req.get('email') and Lab.exists(email=req.get('email')):
             return self.response_status(409)
         try:
             Lab.get_for_update(id=id)
             changes = self.not_null_data(
                 name=req.get('name'),
                 email=req.get('email'),
                 web=req.get('web'),
                 phone=req.get('phone'),
                 department=req.get('department'),
                 city=req.get('city'),
                 address=req.get('address'),
                 active=req.get('active'),
             )
             Lab[id].set(**changes)
             return self.response_status(200, changes)
         except Exception as e:
             return self.response_status(202)
Example #4
0
 async def post(self, request):
     req = request.form
     try:
         with db_session:
             if Lab.exists(email=req.get('email')):
                 return self.response_status(409)
             Lab(**self.not_null_data(
                 id=uuid4().hex,
                 name=req.get('name'),
                 email=req.get('email'),
                 web=req.get('web'),
                 phone=req.get('phone'),
                 department=req.get('department'),
                 city=req.get('city'),
                 address=req.get('address'),
                 fertilizers=[],
             ))
     except Exception as e:
         raise e
     return self.response_status(201)