forked from open-webui/open-webui
		
	feat: csv bulk import
This commit is contained in:
		
							parent
							
								
									bd3b5f1edb
								
							
						
					
					
						commit
						20a6dbbe65
					
				
					 2 changed files with 108 additions and 83 deletions
				
			
		| 
						 | 
				
			
			@ -253,76 +253,6 @@ async def add_user(form_data: AddUserForm, user=Depends(get_admin_user)):
 | 
			
		|||
        raise HTTPException(500, detail=ERROR_MESSAGES.DEFAULT(err))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@router.post("/add/import", response_model=SigninResponse)
 | 
			
		||||
async def add_user_csv_import(
 | 
			
		||||
    file: UploadFile = File(...), user=Depends(get_admin_user)
 | 
			
		||||
):
 | 
			
		||||
    try:
 | 
			
		||||
 | 
			
		||||
        # Check if the file is a CSV file
 | 
			
		||||
        if file.filename.endswith(".csv"):
 | 
			
		||||
            # Read the contents of the CSV file
 | 
			
		||||
            contents = await file.read()
 | 
			
		||||
 | 
			
		||||
            # Decode the contents from bytes to string
 | 
			
		||||
            decoded_content = contents.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
            # Split the CSV content into lines
 | 
			
		||||
            csv_lines = decoded_content.split("\n")
 | 
			
		||||
 | 
			
		||||
            # Parse CSV
 | 
			
		||||
            csv_data = []
 | 
			
		||||
            csv_reader = csv.reader(csv_lines)
 | 
			
		||||
            for row in csv_reader:
 | 
			
		||||
                csv_data.append(row)
 | 
			
		||||
 | 
			
		||||
            # Print the CSV data
 | 
			
		||||
            for row in csv_data:
 | 
			
		||||
                print(row)
 | 
			
		||||
 | 
			
		||||
            return {"message": "CSV file uploaded successfully."}
 | 
			
		||||
        else:
 | 
			
		||||
            raise "File must be a CSV."
 | 
			
		||||
    except Exception as err:
 | 
			
		||||
        raise HTTPException(500, detail=ERROR_MESSAGES.DEFAULT(err))
 | 
			
		||||
 | 
			
		||||
    # if not validate_email_format(form_data.email.lower()):
 | 
			
		||||
    #     raise HTTPException(
 | 
			
		||||
    #         status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.INVALID_EMAIL_FORMAT
 | 
			
		||||
    #     )
 | 
			
		||||
 | 
			
		||||
    # if Users.get_user_by_email(form_data.email.lower()):
 | 
			
		||||
    #     raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN)
 | 
			
		||||
 | 
			
		||||
    # try:
 | 
			
		||||
 | 
			
		||||
    #     print(form_data)
 | 
			
		||||
    #     hashed = get_password_hash(form_data.password)
 | 
			
		||||
    #     user = Auths.insert_new_auth(
 | 
			
		||||
    #         form_data.email.lower(),
 | 
			
		||||
    #         hashed,
 | 
			
		||||
    #         form_data.name,
 | 
			
		||||
    #         form_data.profile_image_url,
 | 
			
		||||
    #         form_data.role,
 | 
			
		||||
    #     )
 | 
			
		||||
 | 
			
		||||
    #     if user:
 | 
			
		||||
    #         token = create_token(data={"id": user.id})
 | 
			
		||||
    #         return {
 | 
			
		||||
    #             "token": token,
 | 
			
		||||
    #             "token_type": "Bearer",
 | 
			
		||||
    #             "id": user.id,
 | 
			
		||||
    #             "email": user.email,
 | 
			
		||||
    #             "name": user.name,
 | 
			
		||||
    #             "role": user.role,
 | 
			
		||||
    #             "profile_image_url": user.profile_image_url,
 | 
			
		||||
    #         }
 | 
			
		||||
    #     else:
 | 
			
		||||
    #         raise HTTPException(500, detail=ERROR_MESSAGES.CREATE_USER_ERROR)
 | 
			
		||||
    # except Exception as err:
 | 
			
		||||
    #     raise HTTPException(500, detail=ERROR_MESSAGES.DEFAULT(err))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
############################
 | 
			
		||||
# ToggleSignUp
 | 
			
		||||
############################
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue