def seed_db(): """Seeds the database.""" with open("authentication.json") as f: users = json.load(f) for user in users: user_object = User() user_object.user_id = user["id"] user_object.username = user["username"] user_object.hashed_password = user["hashedPassword"] user_object.birthdate = dateutil.parser.parse(user["birthdate"]) for profile in user["profiles"]: profile_id = int(profile["id"]) obj = Profile.query.filter_by(profile_id=profile_id).first() if obj is None: obj = Profile() obj.profile_id = profile_id obj.name = profile["name"] user_object.profiles.append(obj) db.session.add(user_object) with open("programming.json") as f: dictionary = json.load(f) assets = dictionary["assets"] providers = dictionary["providers"] for provider in providers: obj = Provider() obj.refresh_rate_in_seconds = provider["refreshRateInSeconds"] obj.provider_id = provider["id"] obj.name = provider["name"] for prof_id in provider["profileIds"]: profile = Profile.query.filter_by(profile_id=prof_id).first() obj.profiles.append(profile) db.session.add(obj) for asset in assets: asset_object = Asset() asset_object.media_id = asset["mediaId"] asset_object.title = asset["title"] asset_object.provider_id = asset["providerId"] asset_object.duration_in_seconds = asset["durationInSeconds"] asset_object.licensing_window_start = dateutil.parser.parse( asset["licensingWindow"]["start"]) asset_object.licensing_window_end = dateutil.parser.parse( asset["licensingWindow"]["end"]) for prof_id in asset["profileIds"]: profile = Profile.query.filter_by(profile_id=prof_id).first() asset_object.profiles.append(profile) db.session.add(asset_object) db.session.commit()
def seed_db(): """Seeds the database.""" with open("tags.json") as f: tags = json.load(f) for tag in tags: tag_object = Tag() tag_object.name = tag["name"] db.session.add(tag_object) db.session.commit() with open("users.json") as f: users = json.load(f) for user in users: user_object = User() user_object.email = user["email"] user_object.name = user["name"] user_object.birthdate = dateutil.parser.parse(user["birthdate"]) user_object.gender = user["gender"] user_object.interested_in = user["interestedIn"] user_object.picture_url = user["pictureUrl"] user_object.hashed_password = user["hashedPassword"] user_object.description = user["description"] for tag_id in user["tags"]: tag_object = Tag.query.filter_by(tag_id=tag_id).first() user_object.tags.append(tag_object) db.session.add(user_object) db.session.commit() with open("ratings.json") as f: ratings = json.load(f) for rating in ratings: rating_object = Rating() rating_object.from_user_id = rating["fromUserId"] rating_object.to_user_id = rating["toUserId"] rating_object.stars = rating["stars"] rating_object.comment = rating["comment"] db.session.add(rating_object) db.session.commit() with open("messages.json") as f: messages = json.load(f) for message in messages: message_object = Message() message_object.from_user_id = message["fromUserId"] message_object.content = message["content"] message_object.date_time = dateutil.parser.parse( message["date_time"]) db.session.add(message_object) db.session.commit()
def register(): """Creates a user account""" response = {} request_json = request.get_json() # Validation keys = [ "email", "name", "birthdate", "gender", "interestedIn", "description", "pictureURL", "password", "tags", ] for key in keys: if key not in request_json: response["message"] = "Missing {} key in request body".format(key) return jsonify(response), 400 email = request_json["email"] user = User.query.filter_by(email=email).first() if user is not None: response["message"] = "Email already exists" return jsonify(response), 409 # Create user user = User() user.email = email user.name = request_json["name"] user.birthdate = dateutil.parser.parse(request_json["birthdate"]) user.gender = request_json["gender"] user.interested_in = request_json["interestedIn"] user.description = request_json["description"] user.picture_url = request_json["pictureURL"] password = request_json["password"].encode("utf-8") user.hashed_password = hashlib.sha256(password).hexdigest() for tag_id in request_json["tags"]: tag = Tag.query.filter_by(tag_id=tag_id).first() user.tags.append(tag) db.session.add(user) db.session.commit() response["message"] = "Account created successfully" return jsonify(response), 201