def resendemailverification(request): emailtasks.send_user_verification_email.delay(request.user.id) if request.user.emailconfirmed: resp_data = err_resp("User email is already verified") else: resp_data = { "status": "OK", } return HttpResponse(json.dumps(resp_data), content_type=json_mime)
def createprofile(request): """ @returns: JSON """ if request.method == "POST": resp_data = {} # Create email = request.POST['email'] username = request.POST['username'] password = request.POST['password'] try: new_user = models.User.objects.create_user(email, username, password) # Log user in user = authenticate(username=username, password=password) login(request, user) emailtasks.send_user_verification_email.delay(new_user.id) resp_data = { "status": OK, "username": new_user.username, "profileImg": None, } except IntegrityError as e: if "username" in str(e): error_msg = "Username already exists" elif "email" in str(e): error_msg = "Email already exists" resp_data = err_resp(error_msg, str(e)) except Exception as e: resp_data = err_resp("Unable to create user at this time", str(e)) return HttpResponse(json.dumps(resp_data), content_type=json_mime) else: return HttpResponseNotAllowed(["POST"])
def booksearch(request, q=None): q = request.GET.get("q") if not q: resp_data = err_resp("Please pass q") else: results = [book.dict for book in search.booksearch(q)] resp_data = { "status": OK, "results": results, } return HttpResponse(json.dumps(resp_data), content_type=json_mime)
def scene(request, booktitle): if request.method == "POST": book = models.Book.objects.filter(title_url=booktitle).first() title = request.POST['title'].strip() startpage = request.POST['startPage'].strip() endpage = request.POST['endPage'].strip() text = request.POST['text'].strip() nsfw = True if request.POST["nsfw"] == 'true' else False scene_type = get_object_or_404(models.SceneType, scenetypcd=request.POST['sceneType']) if bool(startpage) != bool(endpage): raise ValueError("If one page is passed so must the other") else: if startpage == "": startpage = None else: startpage = int(startpage) if endpage == "": endpage = None else: endpage = int(endpage) # Validate # Title required for all if not title: raise ValueError("Title cannot be null or empty") if scene_type.scenetypcd == "gnrc": if not text: raise ValueError("Text is required") elif not startpage: raise ValueError("StartPage is required") elif not endpage: raise ValueError("EndPage is required") # Since other scene types might have start/end pages check if startpage and endpage and (startpage > endpage): raise ValueError("Start page must come before end page") new_scene = models.Scene( user=request.user, book=book, scenetype=scene_type, title=title, title_url=string_to_url(title), startpage=startpage, endpage=endpage, text=text, nsfw=nsfw, ) new_scene.save() # Give user some points usertasks.add_point_to_user.delay(request.user.id, "adscn") new_scene_url = request.path + "/" + new_scene.title_url resp_data = { "status": OK, "newSceneUrl": new_scene_url, "sceneid": new_scene.id, } return json_response(resp_data) if request.method == "GET" and request.META.get("CONTENT_TYPE") == "application/json": book = models.Book.objects.filter(title_url=booktitle).first() if not book: resp_data = err_resp("Book not found") else: scenes = [] scenetypcd = request.GET.get("scenetypcd") book_scenes = book.scene.filter(scenetype_id=scenetypcd).all() for scene in book_scenes: scenes.append(scene.dict) resp_data = { "scenes": scenes, "status": OK, } return json_response(resp_data) # Default return HttpResponse("Scene Page")