async def create_user(conn: AsyncIOMotorClient, user: UserInCreate) -> UserInDB: salt = generate_salt() hashed_password = get_password_hash(salt + user.password) db_user = user.dict() db_user['salt'] = salt db_user['hashed_password'] = hashed_password del db_user['password'] row = await conn[database_name][user_collection_name].insert_one(db_user) return UserInDB(**user.dict())
def upsert_user_in_db(bucket: Bucket, user_in: UserInCreate, persist_to=0): user_doc_id = get_user_doc_id(user_in.username) passwordhash = get_password_hash(user_in.password) user = UserInDB(**user_in.dict(), hashed_password=passwordhash) doc_data = jsonable_encoder(user) with bucket.durability(persist_to=persist_to, timeout=COUCHBASE_DURABILITY_TIMEOUT_SECS): bucket.upsert(user_doc_id, doc_data) return user
async def create_user(db: AsyncIOMotorClient, user: UserInCreate) -> User: data_user = UserInDb(**user.dict()) data_user.change_password(user.password) row = await db[DATABASE_NAME][COLLECTION].insert_one(data_user.dict()) data_user.id = row.inserted_id data_user.created_at = ObjectId(data_user.id).generation_time data_user.updated_at = ObjectId(data_user.id).generation_time return User(**data_user.dict())
async def crud_create_user(db: AsyncIOMotorClient, user: UserInCreate) -> UserInDb: data_user = UserInDb(**user.dict()) data_user.change_password(user.password) if not data_user.access_key_id: data_user.access_key_id = ''.join( random.choice(string.ascii_letters + string.digits) for _ in range(16)) if not data_user.secret_key: data_user.secret_key = ''.join( random.choice(string.ascii_letters + string.digits) for _ in range(16)) row = await db[DATABASE_NAME][COLLECTION].insert_one(data_user.dict()) data_user.created_at = ObjectId(row.inserted_id).generation_time data_user.updated_at = ObjectId(row.inserted_id).generation_time return UserInDb(**data_user.dict())
async def create_user(conn: Connection, user: UserInCreate) -> UserInDB: dbuser = UserInDB(**user.dict()) dbuser.change_password(user.password) row = await conn.fetchrow( """ INSERT INTO users (username, email, salt, hashed_password, bio, image) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id, created_at, updated_at """, dbuser.username, dbuser.email, dbuser.salt, dbuser.hashed_password, dbuser.bio, dbuser.image, ) dbuser.id = row["id"] dbuser.created_at = row["created_at"] dbuser.updated_at = row["updated_at"] return dbuser
def upsert(bucket: Bucket, *, user_in: UserInCreate, persist_to=0): user = upsert_in_db(bucket, user_in=user_in, persist_to=persist_to) user_in_sync = UserSyncIn(**user_in.dict(), name=user_in.username) assert insert_sync_gateway(user_in_sync) return user