Ejemplo n.º 1
0
def schedule():
    myEmail = utils.get_email_from_token(request.args.get('token'))
    params = {'where':json.dumps({'member_email': myEmail})}
    schedule = ParseDriver.make_parse_get_request('/1/classes/Commitments', params)['results']
    if len(schedule) == 0:
         return 'no schedule found', 404
    schedule = schedule[0]
    return utils.get_response(schedule['commitments'])
Ejemplo n.º 2
0
def recent_golinks():
     email = utils.get_email_from_token(request.args.get('token'))
     page = int(request.args.get('page', '0'))
     params = {}
     params['order'] = '-createdAt'
     params['skip']=page*100
     r = ParseDriver.make_parse_get_request('/1/classes/ParseGoLink', params)
     results = r['results']
     for x in results:
          if 'num_clicks' not in x.keys():
                x['num_clicks']=0
     return utils.get_response(results)
Ejemplo n.º 3
0
def create_golink():
     senderEmail = utils.get_email_from_token(request.args.get('token'))
     form = request.get_json()
     golink = {'key': form.get('key'),
                'url': form.get('url'),
                'member_email': form.get('member_email'),
                'description': form.get('description'),
                'permissions': form.get('permissions', 'Anyone'),
                'tags': form.get('tags', [])
                }
     ParseDriver.make_parse_post_request('/1/classes/ParseGoLink', golink)
     return 'ok'
Ejemplo n.º 4
0
def save_schedule():
    myEmail = utils.get_email_from_token(request.args.get('token'))
    times = request.get_json().get('schedule')
    params = {'where':json.dumps({'member_email': myEmail})}
    schedule = ParseDriver.make_parse_get_request('/1/classes/Commitments', params)['results']
    s = {'member_email': myEmail, 'commitments': times}
    print 'schedule was '+str(s)
    if len(schedule) == 0:
        ParseDriver.make_parse_post_request('/1/classes/Commitments', s)
    else:
        sid = schedule[0].get('objectId')
        ParseDriver.make_parse_put_request('/1/classes/Commitments/'+sid, s)
    return 'ok'
Ejemplo n.º 5
0
def popular_golinks():
     email = utils.get_email_from_token(request.args.get('token'))
     page = int(request.args.get('page', '0'))
     params = {}
     params['order'] = '-num_clicks'
     params['skip']=page*100
     params['where']= json.dumps({'member_email': email})
     r = ParseDriver.make_parse_get_request('/1/classes/ParseGoLink', params)
     results = r['results']
     for x in results:
          if 'num_clicks' not in x.keys():
                x['num_clicks']=0
     return utils.get_response(results)
Ejemplo n.º 6
0
def save_golink():
     myEmail = utils.get_email_from_token(request.args.get('token'))
     golink = request.get_json()
     golink_id = golink.get('objectId')
     golink['member_email'] = myEmail
     permissions = golink.get('permissions')
     if permissions == None or permissions == '':
         golink['permissions'] = 'Anyone'
     if golink_id == None or golink_id == '':
         print 'creating a new golink'
         ParseDriver.make_parse_post_request('/1/classes/ParseGoLink', golink)
     else:
         print 'editing an existing golink'
         ParseDriver.make_parse_put_request('/1/classes/ParseGoLink/'+golink_id, golink)
     return 'ok'
Ejemplo n.º 7
0
def attendance():
     requesterEmail = utils.get_email_from_token(request.args.get('token'))
     me = scripts.load_pickle_key('member_email_hash')[requesterEmail]
     emails = scripts.load_pickle_key('committee_members_hash')[me['committee']]
     emails = [x['email'] for x in emails]
     params = {'limit':sys.maxint, 'where': json.dumps({'member_email': {'$in':emails}})}
     event_members = ParseDriver.make_parse_get_request('/1/classes/ParseEventMember', params)['results']
     # return a dictionary with keys emails, values list of attended events
     h = {}
     seen = []
     for em in event_members:
          if em['member_email'] not in seen:
                seen.append(em['member_email'])
                h[em['member_email']] = []
          h[em['member_email']].append({'event_id': em['event_id'], 'type': em['type']})
     return utils.get_response(h)
Ejemplo n.º 8
0
def save_blogpost():
     myEmail =utils.get_email_from_token(request.args.get('token')) 
     post = request.get_json()
     post['last_editor'] = myEmail
     # date = datetime.datetime.utcnow().strftime('%Y-%m-%dT%M:%S.000Z')
     # post['timestamp'] = {'__type': 'Date', 'iso': date}
     objectId = post.get('objectId')
     if objectId != None and objectId != '':
          print 'this is an existing post'
          url = '/1/classes/BlogPost/'+objectId
          ParseDriver.make_parse_put_request(url, post)
     else: 
          print 'this is a new post'
          post['author'] = myEmail
          print post
          resp = ParseDriver.make_parse_post_request('/1/classes/BlogPost', post)
          print resp
     return 'ok'
Ejemplo n.º 9
0
def record_attendance():
     form = request.get_json()
     myEmail = utils.get_email_from_token(request.args.get('token'))
     event_id = form.get('event_id')
     email = form.get('email')
     params = {'where': json.dumps({'event_id': event_id, 'member_email': email})}
     ems = ParseDriver.make_parse_get_request('/1/classes/ParseEventMember', params)['results']
     myPosition = utils.get_position_from_email(myEmail)
     if myPosition == 'exec':
          myPosition = 'chair'
     if len(ems) == 0:
          print 'there are no ems that match'
          data = {'event_id': event_id, 'member_email': email, 'type': myPosition}
          ParseDriver.make_parse_post_request('/1/classes/ParseEventMember', data)
     else:
          print 'there are matching ems ('+str(len(ems))+')'
          em = ems[0]
          url = '/1/classes/ParseEventMember/'+em['objectId']
          data = {'type':myPosition}
          ParseDriver.make_parse_put_request(url,  data)

     return 'ok'