Пример #1
0
    def get_all_adOffs(self, request):
        user, ts = User.get_by_auth_token(int(request.user_id), request.user_token)
        if user is None:
            raise endpoints.ForbiddenException('User auth failed')

        cursor = None
        if request.last_cursor:
            cursor = ndb.Cursor.from_websafe_string(request.last_cursor)

        school_type = None
        if request.school_type and request.school_type != '':
            school_type = request.school_type

        college_rank = None
        if request.college_rank and request.college_rank != '':
            college_rank = request.college_rank

        if school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(AdmissionsOfficer.college_rank == college_rank,
                                                   AdmissionsOfficer.school_type == school_type).order(-AdmissionsOfficer.created,
                                                                                                       AdmissionsOfficer.key)
        elif school_type and not college_rank:
            ad_off_query = AdmissionsOfficer.query(AdmissionsOfficer.school_type == school_type).order(-AdmissionsOfficer.created,
                                                                                                       AdmissionsOfficer.key)
        elif not school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(AdmissionsOfficer.college_rank == college_rank).order(-AdmissionsOfficer.created,
                                                                                                         AdmissionsOfficer.key)
        else:
            ad_off_query = AdmissionsOfficer.query().order(-AdmissionsOfficer.created, AdmissionsOfficer.key)

        ad_offs, next_cursor, more = ad_off_query.fetch_page(10, start_cursor=cursor)

        ret_ad_off = AdmissionsOfficer.ToMessageCollection(ad_offs, next_cursor=next_cursor)
        return ret_ad_off
Пример #2
0
    def insert_ad_off(self, ad_off):
        if ad_off.from_datastore:
            raise endpoints.NotFoundException('BLAH')
        ad_off.school = 'UPenn'
        ad_off.school_type = 'Undergrad'
        ad_off.location = 'NYC'
        ad_off.hours_consulted = 0
        ad_off.knowledge_areas = ['Resume', 'Essays']
        ad_off.whoami = 'Im The BEST!'
        ad_off.howcanihelp = 'Being Awesome'
        ad_off.job_title = 'Admissions Director'
        ad_off.college_rank = 'Top 40'
        ad_off.alias = ad_off.email
        new_ad_off = AdmissionsOfficer(email=ad_off.email, first_name=ad_off.first_name, last_name=ad_off.last_name,
                                       phone=ad_off.phone,
                                       verified=ad_off.verified, school=ad_off.school, school_type=ad_off.school_type,
                                       location=ad_off.location, rating=ad_off.rating,
                                       hours_consulted=ad_off.hours_consulted,
                                       knowledge_areas=ad_off.knowledge_areas, whoami=ad_off.whoami,
                                       job_title=ad_off.job_title, howcanihelp=ad_off.howcanihelp,
                                       college_rank=ad_off.college_rank, alias=ad_off.alias)

        ret_ad_off_key = new_ad_off.put()
        ret_ad_off = ret_ad_off_key.get()
        return ret_ad_off
Пример #3
0
    def insert_ad_off(self, ad_off):
        if ad_off.from_datastore:
            raise endpoints.NotFoundException('BLAH')
        ad_off.school = 'UPenn'
        ad_off.school_type = 'Undergrad'
        ad_off.location = 'NYC'
        ad_off.hours_consulted = 0
        ad_off.knowledge_areas = ['Resume', 'Essays']
        ad_off.whoami = 'Im The BEST!'
        ad_off.howcanihelp = 'Being Awesome'
        ad_off.job_title = 'Admissions Director'
        ad_off.college_rank = 'Top 40'
        ad_off.alias = ad_off.email
        new_ad_off = AdmissionsOfficer(email=ad_off.email,
                                       first_name=ad_off.first_name,
                                       last_name=ad_off.last_name,
                                       phone=ad_off.phone,
                                       verified=ad_off.verified,
                                       school=ad_off.school,
                                       school_type=ad_off.school_type,
                                       location=ad_off.location,
                                       rating=ad_off.rating,
                                       hours_consulted=ad_off.hours_consulted,
                                       knowledge_areas=ad_off.knowledge_areas,
                                       whoami=ad_off.whoami,
                                       job_title=ad_off.job_title,
                                       howcanihelp=ad_off.howcanihelp,
                                       college_rank=ad_off.college_rank,
                                       alias=ad_off.alias)

        ret_ad_off_key = new_ad_off.put()
        ret_ad_off = ret_ad_off_key.get()
        return ret_ad_off
Пример #4
0
    def get_all_adOffs(self, request):
        user, ts = User.get_by_auth_token(int(request.user_id),
                                          request.user_token)
        if user is None:
            raise endpoints.ForbiddenException('User auth failed')

        cursor = None
        if request.last_cursor:
            cursor = ndb.Cursor.from_websafe_string(request.last_cursor)

        school_type = None
        if request.school_type and request.school_type != '':
            school_type = request.school_type

        college_rank = None
        if request.college_rank and request.college_rank != '':
            college_rank = request.college_rank

        if school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.college_rank == college_rank,
                AdmissionsOfficer.school_type == school_type).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        elif school_type and not college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.school_type == school_type).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        elif not school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.college_rank == college_rank).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        else:
            ad_off_query = AdmissionsOfficer.query().order(
                -AdmissionsOfficer.created, AdmissionsOfficer.key)

        ad_offs, next_cursor, more = ad_off_query.fetch_page(
            10, start_cursor=cursor)

        ret_ad_off = AdmissionsOfficer.ToMessageCollection(
            ad_offs, next_cursor=next_cursor)
        return ret_ad_off
Пример #5
0
class HyperAdmit(remote.Service):
    """ HyperAdmit API v1 """
    @endpoints.method(USER_NEW_RC,
                      FreeUser.ProtoModel(),
                      path='freetrialsignup',
                      http_method='POST',
                      name='free_trial_signup')
    def free_trial_signup(self, request):

        new_user = FreeUser(email=request.email,
                            first_name=request.first_name,
                            last_name=request.last_name,
                            phone=request.phone,
                            school_type=request.school_type)

        ret_user_key = new_user.put()
        ret_user = ret_user_key.get()
        return FreeUser.ToMessage(ret_user)

    @endpoints.method(path='sendemail', http_method='POST', name='send_email')
    def send_email(self, request):
        # make a secure connection to SendGrid
        sg = SendGridClient(get_mail_username(), get_mail_pass(), secure=True)

        # make a message object
        message = Mail()
        message.set_subject('message subject')
        message.set_html('<strong>HTML message body</strong>')
        message.set_text('plaintext message body')
        message.set_from('*****@*****.**')

        # add a recipient
        message.add_to('John Doe <*****@*****.**>')

        # use the Web API to send your message
        sg.send(message)
        return message_types.VoidMessage()

    @endpoints.method(USER_AUTH_RC,
                      AdmissionsOfficer.ProtoModel(),
                      path='authuser',
                      http_method='POST',
                      name='auth_user')
    def auth_user(self, request):
        try:
            user = User.get_by_auth_password(request.email, request.password)
        except (InvalidPasswordError, InvalidAuthIdError):
            raise endpoints.ForbiddenException('NAW GET OUT')
        token, ts = User.create_auth_token(user.key.id())

    @endpoints.method(USER_RC,
                      AdmissionsOfficer.ProtoCollection(),
                      path='getalladdOffs',
                      http_method='POST',
                      name='get_all_addOffs')
    def get_all_adOffs(self, request):
        user, ts = User.get_by_auth_token(int(request.user_id),
                                          request.user_token)
        if user is None:
            raise endpoints.ForbiddenException('User auth failed')

        cursor = None
        if request.last_cursor:
            cursor = ndb.Cursor.from_websafe_string(request.last_cursor)

        school_type = None
        if request.school_type and request.school_type != '':
            school_type = request.school_type

        college_rank = None
        if request.college_rank and request.college_rank != '':
            college_rank = request.college_rank

        if school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.college_rank == college_rank,
                AdmissionsOfficer.school_type == school_type).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        elif school_type and not college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.school_type == school_type).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        elif not school_type and college_rank:
            ad_off_query = AdmissionsOfficer.query(
                AdmissionsOfficer.college_rank == college_rank).order(
                    -AdmissionsOfficer.created, AdmissionsOfficer.key)
        else:
            ad_off_query = AdmissionsOfficer.query().order(
                -AdmissionsOfficer.created, AdmissionsOfficer.key)

        ad_offs, next_cursor, more = ad_off_query.fetch_page(
            10, start_cursor=cursor)

        ret_ad_off = AdmissionsOfficer.ToMessageCollection(
            ad_offs, next_cursor=next_cursor)
        return ret_ad_off

    # Ad Off methods
    @AdmissionsOfficer.method(request_fields=('id', ),
                              path='getadoff/{id}',
                              http_method='GET',
                              name='get_ad_off')
    def get_ad_off(self, ad_off):

        if not ad_off.from_datastore:
            raise endpoints.NotFoundException('MyModel not found.')
        return ad_off

    @AdmissionsOfficer.method(request_fields=('email', 'last_name',
                                              'first_name', 'phone'),
                              path='insertadoff',
                              http_method='POST',
                              name='insert_ad_off')
    def insert_ad_off(self, ad_off):
        if ad_off.from_datastore:
            raise endpoints.NotFoundException('BLAH')
        ad_off.school = 'UPenn'
        ad_off.school_type = 'Undergrad'
        ad_off.location = 'NYC'
        ad_off.hours_consulted = 0
        ad_off.knowledge_areas = ['Resume', 'Essays']
        ad_off.whoami = 'Im The BEST!'
        ad_off.howcanihelp = 'Being Awesome'
        ad_off.job_title = 'Admissions Director'
        ad_off.college_rank = 'Top 40'
        ad_off.alias = ad_off.email
        new_ad_off = AdmissionsOfficer(email=ad_off.email,
                                       first_name=ad_off.first_name,
                                       last_name=ad_off.last_name,
                                       phone=ad_off.phone,
                                       verified=ad_off.verified,
                                       school=ad_off.school,
                                       school_type=ad_off.school_type,
                                       location=ad_off.location,
                                       rating=ad_off.rating,
                                       hours_consulted=ad_off.hours_consulted,
                                       knowledge_areas=ad_off.knowledge_areas,
                                       whoami=ad_off.whoami,
                                       job_title=ad_off.job_title,
                                       howcanihelp=ad_off.howcanihelp,
                                       college_rank=ad_off.college_rank,
                                       alias=ad_off.alias)

        ret_ad_off_key = new_ad_off.put()
        ret_ad_off = ret_ad_off_key.get()
        return ret_ad_off

    @AdmissionsOfficer.query_method(user_required=False,
                                    query_fields=('school_type',
                                                  'college_rank', 'limit',
                                                  'order', 'pageToken'),
                                    path='getadoffs',
                                    name='get_ad_off_list')
    def get_ad_off_list(self, query):

        return query