def create(self): ua = request.params.get('ua','no user-agent found') typeOfRequest = request.params.get('typeOfRequest') if typeOfRequest == 'feedback': permalink = request.params.get('permalink', 'no permalink provided') feedback = request.params.get('feedback','no feedback provided') email = request.params.get('email','Anonymous') if email == '': email = 'Anonymous' mail('*****@*****.**',"Customer feedback",email + " just sent a feedback:\n" + feedback + ". \nPermalink: "+ permalink + "\n\nUser-Agent: " + ua, typeOfRequest) return dumps({"success": True}) else: sender = request.params.get('sender', 'Anonymous') if sender == '': sender = 'Anonymous' recipient = request.params.get('recipient', '*****@*****.**') if recipient == '': recipient = '*****@*****.**' subject_txt = request.params.get('subject_txt', 'Permalink from map.geo.admin') if subject_txt == '': subject_txt = 'Permalink from map.geo.admin' text_msg = request.params.get('text_msg', 'No message provided') if text_msg == '': text_msg = 'No message provided' mail(recipient,subject_txt,sender + " just sent a you a message:\n" + text_msg + "\n\nUser-Agent: " + ua, typeOfRequest) return dumps({"success": True})
def qrcodegenerator(self): shorturl = "http://map.geo.admin.ch" #default url = request.params.get('url') if url is None: abort(400, 'A url parameter is required') # Check that admin.ch is part of the longurl if (not 'admin.ch' in url) and (not 'bgdi.ch' in url): response.status = '406' return 'Can be used only for admin.ch URls' try: shorturl = shorten(url) except Exception, e: mail("*****@*****.**","Error in QrcodegeneratorController","Issue with URL shortener","") pass
def shorten(myUrl): # Check that myUrl is not already in the database query1 = Session.query(ShortUrl) query1 = query1.filter(ShortUrl.url == myUrl) dontExist = True for r1 in query1: dontExist = False shorturl = r1.url_short break # The current time is hashed and then, only the seven first characters are used. if dontExist: try: shorturl = hashlib.md5(str(datetime.now())).hexdigest()[:8] shortUrlObject = ShortUrl(url_short=shorturl, url=myUrl) Session.add(shortUrlObject) Session.commit() except Exception, e: mail("*****@*****.**", "Error in ShortenerController", "Database insert error", "") raise Exception('Error by database insert in Shortener')