コード例 #1
0
 def post(self):
     action = self.request.get('action')
     if action == "submit_application":
         user = ""
         try:
             user_data = json.loads(self.request.get('user_data'))
             user      = populate.create_user(user_data, "Mentor")
             if user=="User already exists":
                 self.log_user_out()
                 message  = json.dumps({"message":"error", "value":user})
                 self.response.write(message)
             else:
                 programUTF  = json.loads(self.request.get('program')) 
                 programJSON = jsonString.convert(programUTF)  
                 program     = populate.create_program(user, programJSON)
                 mail_status = mailhandler.requestMail(user)
                 notifyuser = mailhandler.notificationMail(user)
                 message     = json.dumps({"message":"success", "firstname":user.first_name, "lastname":user.last_name})
                 self.log_user_out()
                 self.response.write(message)
         except:
             populate.delete_user(user)
             self.log_user_out()
             message  = json.dumps({"message":"error", "value":"unknown"})
             self.response.write(message)
コード例 #2
0
    def get(self):
        authorization_code = self.request.get('code')
        state              = self.request.get('state')

        #requesting for accesss token from linkedIn using authorization code
        result             = urllib.urlopen('https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=%s&redirect_uri=%s&client_id=%s&client_secret=%s' %(authorization_code,Redirect_uri_mentor,API_Key,Secret_Key))

        #checks if action was successful and 'state' is authentic 
        if result.code == 200 and state == State:
            token       = json.loads(result.read())


            #using access token to fetch user data from linkedIn  
            userprofile          = urllib.urlopen('https://api.linkedin.com/v1/people/~:(id,first-name,last-name,location:(name),summary,industry,public-profile-url,positions,recommendations-received,skills:(id,skill),educations:(id,school-name,field-of-study,start-date,end-date,degree,activities,notes),twitter-accounts,picture-url,email-address)?format=json&oauth2_access_token=%s' %(token['access_token']))
            userdata             = json.loads(userprofile.read())
            profilepic           = urllib.urlopen('https://api.linkedin.com/v1/people/~/picture-urls::(original)?format=json&oauth2_access_token=%s' %(token['access_token'])) 
            bigPic               = json.loads(profilepic.read())
            userdata["big_pic"]  = bigPic['values'][0]
            userdata             = jsonString.convert(userdata)
            #rendering form for new mentor to fill
            exists = User.all().filter('email =', userdata['emailAddress']).count()
            if exists > 0 :
                self.render("/duplicate.html")
            else:
                self.render('mentor/mentorsignupform.html', user_data=json.dumps(userdata))            
        #redirects to homepage when action above is not successful     
        else:
            self.redirect('/home')
コード例 #3
0
    def post(self):
        action = self.request.get('action')
        if action == "submit_application":
            try:
                user_data = json.loads(self.request.get('user_data'))
                user      = populate.create_user(user_data, "Job Applicant")
                if user=="User already exists":
                    self.log_user_out()
                    message  = json.dumps({"message":"error", "value":user})
                    self.response.write(message)
                else:
                    programUTF  = json.loads(self.request.get('program')) 
                    programJSON = jsonString.convert(programUTF)  
                    program     = populate.create_program(user, programJSON)
                    
                    mail_status = mailhandler.requestMail(user)
                    message     = json.dumps({"message":"success", "firstname":user.first_name, "lastname":user.last_name})
                    self.log_user_out()
                    self.response.write(message)
########################################### need to send alert to admin for confirmation of new user ####################################################
            except:
                self.response.write("Something seems to have gone wrong.")

        else:
            self.redirect('/home')
コード例 #4
0
    def post(self):
            action = self.request.get('action')
            if action =="largeSearch":
                totalResults = []
                foundTopics  = []
                successTopics = []
                successSectors = [] 
                foundSectors = []
                sector_count = len(self.request.get('sectors'))
                topic_count  = len(self.request.get('topics'))
                if topic_count > 2:
                    topicSTRING  = self.request.get('topics')
                    topicUTF     = json.loads(str(topicSTRING))
                    topicJSON    = jsonString.convert(topicUTF)  
                    for topic in topicJSON:
                        self.query = Topic.all().filter("value = ",topic.get('value'))
                        foundTopics.append(self.query)
                    successTopics =  self.returnCriterias(foundTopics)
                if sector_count > 2:
                    sectorSTRING = self.request.get('sectors')
                    sectorUTF    = json.loads(str(sectorSTRING))
                    sectorJSON   = jsonString.convert(sectorUTF)
                    for sector in sectorJSON:
                        self.query = Sector.all().filter("value = ", sector.get('value'))
                        foundSectors.append(self.query)
                    successSectors = self.returnSectors(foundSectors)

                totalResults = successSectors + successTopics
                finalResults = self.unique_result(totalResults)

                self.response.write(json.dumps(finalResults))

            elif action == "getFullProfile":
                user_id = self.request.get("user_id")
                mentor    = User.get_by_id(int(user_id))
                user      = User.get_by_id(int(self.user_id))
                self.render("fullprofile.html", mentor = mentor, user_id= user.key().id())

            elif action == "favorite":
                favorite_action = self.request.get('favorite_action')
                favorite_type   = self.request.get('favorite_type')
                favorite_id     = self.request.get('favorite_id')

                user            = User.get_by_id(int(self.user_id))
                result          = {}

                if favorite_action == "unlike":
                    totalFavorites = Favorite.gql("WHERE user=:1", user).count()
                    result         = Favorite.delete(user, favorite_type, favorite_id)
                    message        = {"message": result, "value": totalFavorites-1}
                    self.response.write(json.dumps(message))

                elif favorite_action == "like":
                    totalFavorites = Favorite.gql("WHERE user=:1", user).count()
                    result         = Favorite.create(user, favorite_type, favorite_id)
                    message        = {"message": result, "value": totalFavorites+1}
                    self.response.write(json.dumps(message))

                else:
                    result["message"] = "error"
                    result["value"]   = "wrong command"
                    self.response.write(favorite_action)

            elif action == "rate":
                rating_type   = self.request.get('rating_type')
                rating_id     = self.request.get('rating_id')
                rating_value  = self.request.get('rating_value')

            
                user          = User.get_by_id(int(self.user_id))
                result        = {}
                result        = Rating.rate(user, rating_type, rating_id, rating_value)
                message       = result

                self.response.write(json.dumps(message))

            elif action == "comment":
                comment                 = self.request.get("comment")
                comment                 = json.loads(comment)
               
                user                    = User.get_by_id(int(self.user_id))
                comment['commentor_id'] = self.user_id
                comment['commentor']    = user
                
                if comment.get('type')  == "user":
                    comment['entity']   = User.get_by_id( int( comment.get('entity_id') ) )
                else:
                    comment['entity']   = Resource.get_by_id( int( comment.get('entity_id') ) )
                
                comment_action          = comment.get("comment_action")                 

                if comment_action == "new":
                    result = Comment.create(comment)
                    self.response.write(result)
                
                elif comment_action == "delete":
                    result = Comment.delete(comment)
                    self.response.write(result);  

                elif comment_action == "edit":
                    result = Comment.edit(comment)
                    self.response.write(result);  

            else:
                result["message"] = "error"
                result["value"]   = "wrong command"
                self.response.write(rating_action)
コード例 #5
0
    def post(self):
            action = self.request.get('action')
            if action =="largeSearch":
            # try:
                totalResults = []
                foundTopics  = []
                successTopics = []
                successSectors = [] 
                foundSectors = []
                sector_count = len(self.request.get('sectors'))
                topic_count  = len(self.request.get('topics'))
                if topic_count > 2:
                    topicSTRING  = self.request.get('topics')
                    topicUTF     = json.loads(str(topicSTRING))
                    topicJSON    = jsonString.convert(topicUTF)  
                    for topic in topicJSON:
                        self.query = Topic.all().filter("value = ",topic.get('value'))
                        foundTopics.append(self.query)
                    successTopics =  self.returnCriterias(foundTopics)
                if sector_count > 2:
                    sectorSTRING = self.request.get('sectors')
                    sectorUTF    = json.loads(str(sectorSTRING))
                    sectorJSON   = jsonString.convert(sectorUTF)
                    for sector in sectorJSON:
                        self.query = Sector.all().filter("value = ", sector.get('value'))
                        foundSectors.append(self.query)
                    successSectors = self.returnSectors(foundSectors)

                # print "================================================================="
                totalResults =successSectors + successTopics
                finalResults  = self.unique_result(totalResults)
                # print finalResults
                # print "================================================================="        
                self.response.write(json.dumps(finalResults))

            # except:
            #     self.response.write("u don 4k up")
            elif action == "getFullProfile":
                user_id = self.request.get("user_id")
                user    = User.get_by_id(int(user_id))
                user_profile = {}
                user_profile["user"]             = m2json.to_dict(user)
                user_profile["user"]["user_id"]  = user_id


                logged_user                             = User.get_by_id(int(self.user_id))
                status                                  = Favorite.check(logged_user, user_id)
                user_profile["user"]["user_profile"]    = user.user_profile
                user_profile["user"]["data_fav_status"] = status["favorite"]
                user_profile["user"]["data_fav_src"]    = status["src"]

                rating                                  = Rating.check(logged_user, user_id)
                user_profile["user"]["rating"]          = rating
                
                if user.educations:
                    user_profile["educations"]   = m2json.gql_json_parser(user.educations)

                if user.positions:
                    user_profile["positions"]    = m2json.gql_json_parser(user.positions)

                if user.skills:
                    user_profile["skills"]       = m2json.gql_json_parser(user.skills)

                if user.comments_received:
                    user_profile["logged_user_comment"] = Comment.check({"entity_id":user_id, "commentor_id":self.user_id})
                    user_profile["comments_received"]   = []
                    for comments_received in user.comments_received:
                        received = {}
                        received['user']           = comments_received.user.first_name + " " + comments_received.user.last_name
                        received['resource']       = comments_received.resource
                        received['entity_id']      = comments_received.entity_id
                        received['comment_id']     = comments_received.key().id()
                        received['commentor']      = comments_received.commentor_name
                        received['commentor_name'] = comments_received.commentor_name
                        received['commentor_id']   = comments_received.commentor_id
                        received['content']        = comments_received.content
                        received['created']        = m2json.get_milliseconds(comments_received.created)
                        received["rating"]         = Rating.check(comments_received.commentor, comments_received.entity_id)
                        user_profile["comments_received"].append(received)

                if user.programs:
                    user_profile["program"]      = m2json.gql_json_parser(user.programs)

                if user.programs[0].topics:
                    user_profile["topics"]       = m2json.gql_json_parser(user.programs[0].topics)

                if user.programs[0].sectors:
                    user_profile["sectors"]      = m2json.gql_json_parser(user.programs[0].sectors)
                self.response.write(json.dumps(user_profile))

            elif action == "favorite":
                favorite_action = self.request.get('favorite_action')
                favorite_type   = self.request.get('favorite_type')
                favorite_id     = self.request.get('favorite_id')

                user            = User.get_by_id(int(self.user_id))
                result          = {}

                if favorite_action == "unlike":
                    totalFavorites = Favorite.gql("WHERE user=:1", user).count()
                    result         = Favorite.delete(user, favorite_type, favorite_id)
                    message        = {"message": result, "value": totalFavorites-1}
                    self.response.write(json.dumps(message))

                elif favorite_action == "like":
                    totalFavorites = Favorite.gql("WHERE user=:1", user).count()
                    result         = Favorite.create(user, favorite_type, favorite_id)
                    message        = {"message": result, "value": totalFavorites+1}
                    self.response.write(json.dumps(message))

                else:
                    result["message"] = "error"
                    result["value"]   = "wrong command"
                    self.response.write(favorite_action)

            elif action == "rate":
                rating_type   = self.request.get('rating_type')
                rating_id     = self.request.get('rating_id')
                rating_value  = self.request.get('rating_value')

            
                user          = User.get_by_id(int(self.user_id))
                result        = {}
                result        = Rating.rate(user, rating_type, rating_id, rating_value)
                message       = result

                self.response.write(json.dumps(message))

            elif action == "comment":
                comment                 = self.request.get("comment")
                comment                 = json.loads(comment)
               
                user                    = User.get_by_id(int(self.user_id))
                comment['commentor_id'] = self.user_id
                comment['commentor']    = user
                
                if comment.get('type')  == "user":
                    comment['entity']   = User.get_by_id( int( comment.get('entity_id') ) )
                else:
                    comment['entity']   = Resource.get_by_id( int( comment.get('entity_id') ) )
                
                comment_action          = comment.get("comment_action") 
                

                if comment_action == "new":
                    result               = Comment.create(comment)
                    comment['status']    = result.get('status')
                    comment["comment_id"]     = result.get('value')
                    comment['entity']    = None 
                    comment['commentor'] = user.first_name + " " + user.last_name
                    self.response.write(json.dumps(comment)); 
                elif comment_action == "delete":
                    result  = Comment.delete(comment)
                    comment['status']    = result.get('status')
                    comment["comment_id"]     = result.get('value')
                    comment['entity']    = None 
                    comment['commentor'] = user.first_name + " " + user.last_name 
                    self.response.write(json.dumps(comment)); 
                elif comment_action == "edit":
                    result  = Comment.edit(comment)
                    comment['status']    = result.get('status')
                    comment["comment_id"]     = result.get('value')
                    comment['entity']    = None 
                    comment['commentor'] = user.first_name + " " + user.last_name
                    self.response.write(json.dumps(comment));   
            else:
                result["message"] = "error"
                result["value"]   = "wrong command"
                self.response.write(rating_action)