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))
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))
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)
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()
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()
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()
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()
def get(self, path): user_id = self.get_user_id() events = user_recommended_events_valid(user_id) self.success(200, Payload(events)) self.finish()
def get(self, path: str): user_id = self.get_user_id() refs = UserReferral.get_pending(user_id) self.success(status=200, payload=Payload(refs))
def get(self, path: str): user_id = self.get_user_id() refs = get_referrals(user_id) self.success(status=200, payload=Payload(refs))
def get(self, path: str): possible = get_possible_affiliations() self.success(payload=Payload(possible))