def test_valid_urls(self): self.assertEqual(to_emoji_slug(0), "😆") self.assertEqual(to_emoji_slug(1), "😂") self.assertEqual(to_emoji_slug(29), "😩") self.assertEqual(to_emoji_slug(30), "😂😆") self.assertEqual(to_emoji_slug(31), "😂😂") self.assertEqual(to_emoji_slug(299), "😐😩") self.assertEqual(to_emoji_slug(300), "😑😆") self.assertEqual(to_emoji_slug(301), "😑😂") self.assertEqual(to_emoji_slug(4234353453423245324524323452345), "😏🤭😐😎🤫😳😎🙄🤨🤑🤨😶😑🤫😓😭🤗🤭😬😓🤫")
def create_url(): if not request.is_json: abort(422) content = request.json redirect_url = content.get('url', '').strip() if not is_valid_url(redirect_url): abort(422) # Check if it already exists url = Url.query.filter(Url.redirect == redirect_url).first() if url: return jsonify({'shorter': url.get_full_short()}) next_id = db.session.execute(Sequence("urls_id_seq")) url = Url(id=next_id, redirect=redirect_url, slug=to_emoji_slug(next_id)) db.session.add(url) db.session.commit() return jsonify({'shorter': url.get_full_short()})
def mutate(self, info, redirect_url): redirect_url = redirect_url.strip() if not is_valid_url(redirect_url): return 'Malformed URL: {}'.format(redirect_url) # Check if it already exists url_obj = Url.query.filter(Url.redirect==redirect_url).first() if url_obj: ok = False # return false because it was found, but not created return CreateShortUrl(short=url_obj.get_full_short(), ok=ok) next_id = db.session.execute(Sequence("urls_id_seq")) url_obj = Url(id=next_id, redirect=redirect_url, slug=to_emoji_slug(next_id)) db.session.add(url_obj) db.session.commit() ok = True return CreateShortUrl(short=url_obj.get_full_short(), ok=ok)