Ejemplo n.º 1
0
 def get(self, path: str):
     print(f'path: {path}')
     user_id = self.get_user_id()
     print(f'referrals for: {user_id}')
     refs = UserReferral.get_approved(user_id)
     print(f'approved referrals: {refs}')
     self.success(status=200, payload=Payload(refs))
Ejemplo n.º 2
0
 def get(self, path: str):
     if not self.has_admin_role():
         logging.warning(
             f'User {self.get_user_id()} attempted to approve host')
         self.write_error(403, 'Error: insufficient permissions')
     else:
         host_requests = get_pending_host_requests()
         self.success(200, payload=Payload(host_requests))
Ejemplo n.º 3
0
 def write(self, chunk: Writable):
     """
     Writes chunk to output buffer
     Reference: https://git.io/vHgiA
     chunk: data to write (must be JSON encodable)
     """
     if self._finished:
         raise RuntimeError("Cannot write() after finish()")
     if isinstance(chunk, dict):
         chunk = json_esc(chunk)
     elif isinstance(chunk, Payload):
         chunk.add_link('self', self.request.uri)
         chunk = chunk.json()
     elif isinstance(chunk, ErrorResponse):
         chunk = chunk.json()
     elif not isinstance(chunk, (bytes, unicode_type)):
         payload = Payload(chunk)
         payload.add_link('self', self.request.uri)
         chunk = payload.json()
     self.set_header("Content-Type", "application/json; charset=UTF-8")
     chunk = utf8(chunk)
     self._write_buffer.append(chunk)
Ejemplo n.º 4
0
    def get(self, path):
        path = path.replace('/', '')

        if path:
            # get single event
            if not (isinstance(path, int) or path.isdecimal()):
                self.write_error(400, f'Error: Invalid event id')
            else:
                value = get_event_by_user(int(path), self.get_user_id())
                if value is None:
                    # event not found
                    self.write_error(404, f'Event not found with id: {path}')
                else:
                    # event found
                    self.set_status(200)
                    payload = Payload(value)
                    self.finish(payload)
        else:
            # get event list
            value = get_active_by_user(self.get_user_id())
            payload = Payload(value)
            self.success(200, payload)
            self.finish()
Ejemplo n.º 5
0
 def post(self, path: str):
     # new user signup with referral
     # decode json
     data = self.get_data()
     # verify referral exists
     reference = get_user_by_email(data['referral'])
     if not reference:
         self.write_error(400, 'Error: referral not found')
     else:
         # add user
         user, activation = signup(data['email'], data['password'])
         # TODO: finish this block
         if user is not None:
             user_referral = UserReferral.add(user.id, reference.id)
             activation = UserVerification.add(user_id=user.id)
             self.success(payload=Payload(user))
             send_verification_email(to=user.email, code=activation.code)
         else:
             self.write_error(
                 400, 'Error: user already exists with that email address')
     self.finish()
Ejemplo n.º 6
0
 def post(self, path):
     if not self.has_host_role():
         self.write_error(400, 'Error: insufficient permissions')
     else:
         # decode json
         data = self.get_data()
         # validate data
         data['start_date'] = dateutil.parser.parse(data['start_date'])
         data['start_date'] = data['start_date'].replace(tzinfo=None)
         data['end_date'] = dateutil.parser.parse(data['end_date'])
         data['end_date'] = data['end_date'].replace(tzinfo=None)
         data['organizer'] = self.get_user_id()
         foodprefs = data.pop('food_preferences')
         data['image'] = data.get('image', False)
         # add event
         event = create_event(**data)
         if event:
             # add food preferences
             set_food_preferences(event.id, foodprefs)
             payload = Payload(event)
             self.success(201, payload)
             # asynchronously send notification to recommend users
             self.executor.submit(send_push_to_users,
                                  _event_recommendation(
                                      event, self.with_rec_params),
                                  'PittGrub: New Event!',
                                  event.title,
                                  data={
                                      'type': 'event',
                                      'event': event.title,
                                      'title': 'PittGrub: New event!',
                                      'body': event.title
                                  })
         else:
             self.set_status(400)
     self.finish()
Ejemplo n.º 7
0
 def get(self, path):
     # get data
     user_id = self.get_user_id()
     events = user_accepted_events(user_id)
     self.success(200, Payload(events))
     self.finish()
Ejemplo n.º 8
0
 def get(self, path):
     user_id = self.get_user_id()
     events = user_recommended_events_valid(user_id)
     self.success(200, Payload(events))
     self.finish()
Ejemplo n.º 9
0
 def get(self, path: str):
     user_id = self.get_user_id()
     refs = UserReferral.get_pending(user_id)
     self.success(status=200, payload=Payload(refs))
Ejemplo n.º 10
0
 def get(self, path: str):
     user_id = self.get_user_id()
     refs = get_referrals(user_id)
     self.success(status=200, payload=Payload(refs))
Ejemplo n.º 11
0
 def get(self, path: str):
     possible = get_possible_affiliations()
     self.success(payload=Payload(possible))