示例#1
0
 def post(self, data, user):
     ticket = get_ticket(data["ticket_id"])
     if ticket is None:
         return return_failure("ticket not found")
     if unclaim_ticket(user, ticket):
         return return_success({'ticket': ticket.json()})
     return return_failure("could not unclaim ticket")
示例#2
0
 def post(self, data, user):
     ticket = get_ticket(data["ticket_id"])
     if ticket is None:
         return return_failure("ticket not found")
     if rate_ticket(user, ticket, data["rating"]):
         return return_success({'ticket': ticket.json()})
     return return_failure("could not cancel ticket")
示例#3
0
 def post(self, data, user):
     ticket = get_ticket(data["ticket_id"])
     if ticket is None:
         return return_failure("ticket not found")
     if cancel_ticket(user, ticket):
         return return_success()
     return return_failure("could not cancel ticket")
示例#4
0
 def post(self):
     data = SERVER_CREATE_PARSER.parse_args()
     if data["api_key"] != app.config["SERVER_API_KEY"]:
         return return_failure("api key incorrect")
     event = parse_email(data["email"])
     if (event is not None):
         return return_success({'event': event.json()})
     else:
         return return_failure("could not parse email")
示例#5
0
    def post(self, data, user):
        event = get_event(data['eid'], None, override=True)
        if (event is None):
            return return_failure("could not find event")
        dates = parse_dates_possibilities(event.description)
        if dates is None:
            dates = []
        same_day_events = []
        seen_eids = set()
        seen_eids.add(event.eid)
        for e in get_events_by_date(event.time_start - timedelta(days=1)):
            if e.eid not in seen_eids:
                same_day_events.append(e.json(fullJSON=0))
                seen_eids.add(e.eid)
        for e in get_events_by_date(event.time_start):
            if e.eid not in seen_eids:
                same_day_events.append(e.json(fullJSON=0))
                seen_eids.add(e.eid)

        return return_success({
            'event': {
                **event.json(), 'alternate_dates':
                [(x[0], x[1].isoformat() + "Z") for x in dates],
                'alternate_location':
                parse_all_locations(event.description),
                'alternate_events':
                [e.json(fullJSON=0) for e in get_event_children(event)],
                'same_day_events':
                same_day_events
            }
        })
示例#6
0
 def post(self, data, user):
     settings = get_all_settings(user)
     users = get_all_users(user)
     if (settings is None):
         return return_failure("no admin privileges")
     return return_success({
         'settings': {s.key:s.value for s in settings},
         'users': [u.json() for u in users],
         'ticket_stats': ticket_stats()
     })
示例#7
0
 def post(self, data, user):
     q_data = {
         'question': data['question'],
         'contact': data['contact'],
         'team': user.team
     }
     ticket = create_ticket(user, json.dumps(q_data))
     if (ticket is None):
         return return_failure("could not create ticket")
     return return_success({'ticket': ticket.json()})
示例#8
0
 def post(self, data, user):
     if (not user.admin_is):
         return return_failure("no admin privileges")
     users = get_all_users(user)
     settings = json.loads(data['data'])
     for key in settings:
         set_setting(user, key, settings[key])
     settings = get_all_settings(user)
     return return_success({
         'settings': {s.key:s.value for s in settings},
         'users': [u.json() for u in users]
     })
示例#9
0
 def post(self, data, user):
     event = get_event(data.eid, "", user=user)
     if not event:
         return return_failure("could not get event")
     new_event = create_server_event(event.title,
                                     event.etype,
                                     event.description,
                                     data.start_date,
                                     message_html=event.description_html,
                                     location=data.location,
                                     time_end=data.end_date,
                                     link=event.cta_link,
                                     headerInfo=event.header)
     if new_event:
         new_event.parent_event_is = True
         new_event.parent_event = event
         new_event.published_is = True
         new_event.approved_is = True
         update_db()
         return return_success(
             {"message": "published and waiting approval!"})
     return return_failure("could not create event")
示例#10
0
 def post(self, data, user):
     if (update_and_publish_event(data['eid'],
                                  data['etoken'],
                                  data['title'],
                                  data['etype'],
                                  data['description'],
                                  data['start_date'],
                                  data['end_date'],
                                  data['link'],
                                  user=user,
                                  location=data['location'])):
         return return_success(
             {"message": "published and waiting approval!"})
     return return_failure("something went wrong")
示例#11
0
    def post(self):
        """
        Login into reddlinks with dopeauth
        Return success if token and uid are created
        """
        data = LOGIN_PARSER.parse_args()
        email = data['email']
        uid = data['uid']
        token = data['token']
        if email == "GITHUB" and uid == "GITHUB":
            email = authenticate_with_github(
                token,
                get_setting(None, SETTING_GITHUB_CLIENT_ID, override=True),
                get_setting(None, SETTING_GITHUB_CLIENT_SECRET, override=True))
            if email is None:
                return return_failure("login credentials invalid")
            client = get_client(email)
        else:
            client = authenticate_firsttime(email, uid, token)
            if (client is None):
                # Unauthenticated
                return return_failure("login credentials invalid")

        if (not client.user.admin_is and client.user.email == get_setting(
                None, SETTING_MASTER_USER, override=True)):
            set_admin(None, client.user, True, override=True)

        # add mentor
        if ('mentor_key' in data and data['mentor_key'] == get_setting(
                None, SETTING_MENTOR_PASSWORD, override=True)):
            set_mentor(None, client.user, True, override=True)

        return return_success({
            "email": email,
            "token": client.token,
            "uid": client.uid
        })
示例#12
0
    def post(self, data, user):
        theuser = User.query.filter_by(id=data['user_id']).first()
        if (theuser is None):
            return return_failure("something went wrong")
        if data['type'] == "mentor":
            set_mentor(user, theuser, data['value'] == '1')
        elif data['type'] == "admin":
            set_admin(user, theuser, data['value'] == '1')

        settings = get_all_settings(user)
        users = get_all_users(user)

        return return_success({
            'settings': {s.key:s.value for s in settings},
            'users': [u.json() for u in users]
        })
    def post(self):
        """
        Login into reddlinks with dopeauth
        Return success if token and uid are created
        """
        data = LOGIN_PARSER.parse_args()
        email = data['email']
        uid = data['uid']
        token = data['token']
        client = authenticate_firsttime(email, uid, token)
        if (client is None):
            # Unauthenticated
            return return_failure("login credentials invalid")

        return return_success({
            "email": email,
            "token": client.token,
            "uid": client.uid
        })
示例#14
0
 def get(self):
     return return_failure("Please use post requests")
示例#15
0
 def post(self, data, user):
     if (not user.admin_is):
         return return_failure("no admin privileges")
     delete_users_and_tickets(user)
     return return_success({})
示例#16
0
 def post(self, data, user):
     event = get_event(data.eid, "", user=user)
     if event:
         remove_from_db([event])
         return return_success({"message": "deleted event" + data.eid})
     return return_failure("could not get event")
示例#17
0
 def post(self, data, user):
     ticket = create_ticket(user, data['data'])
     if (ticket is None):
         return return_failure("could not create ticket")
     return return_success({'ticket': ticket.json()})
示例#18
0
 def post(self, data, user):
     if (not user.admin_is):
         return return_failure("not admin")
     events = get_all_events()
     return return_success({'events': [e.json(fullJSON=0) for e in events]})
示例#19
0
 def post(self, data, user):
     if (not user.admin_is):
         return return_failure("user not admin")
     if (approve_event(data['eid'])):
         return return_success({'message': "approval toggled"})
     return return_failure("could not find event")