diff --git a/backend/core/message_code.py b/backend/core/message_code.py index 05bb044..64bcd20 100644 --- a/backend/core/message_code.py +++ b/backend/core/message_code.py @@ -1,10 +1,10 @@ class MessageCode(): - CREATE_USER_SUCCESS: str = 'CREATE_USER_SUCCESS' - CREATED_USER: str = 'CREATED_USER' - WRONG_INPUT: str = 'LOGIN_WRONG' - ACCOUNT_LOCK: str = 'USER_LOCK' + CREATE_USER_SUCCESS: str = 'message_create_user_success' + CREATED_USER: str = 'message_created_user' + WRONG_INPUT: str = 'message_login_wrong' + ACCOUNT_LOCK: str = 'message_user_lock' REFRESH_TOKEN_EXPIRED: str = 'REFRESH_TOKEN_EXPIRED' - CREATE_HOUSE_FAIL: str = 'CREATE_HOUSE_FAIL' - CREATE_HOUSE_SUCCESS: str = 'CREATE_HOUSE_SUCCESS' + CREATE_HOUSE_FAIL: str = 'message_create_house_fail' + CREATE_HOUSE_SUCCESS: str = 'message_create_house_success' HOUSE_NOT_FOUND: str = 'HOUSE_NOT_FOUND' diff --git a/backend/repos/repository_houses.py b/backend/repos/repository_houses.py index 1999bc4..4b5aca4 100644 --- a/backend/repos/repository_houses.py +++ b/backend/repos/repository_houses.py @@ -1,3 +1,4 @@ +from datetime import datetime from backend.db.models.houses import Houses, Areas from sqlalchemy.orm import Session @@ -75,4 +76,15 @@ class RepositoryHouses: return db_house def delete(self, db: Session, house_id: str): - pass + db_house = self.get_by_id(house_id) + if not db_house: + return None + try: + self.houses.query.where(Houses.id == house_id).update({"deleted_at": datetime.utcnow()}) + db.commit() + except Exception: + db.rollback() + raise + + db.refresh(db_house) + return db_house diff --git a/backend/routes/house/house.py b/backend/routes/house/house.py index 0a6d033..2855fea 100644 --- a/backend/routes/house/house.py +++ b/backend/routes/house/house.py @@ -43,3 +43,8 @@ def get_house_by_id(house_id: str, current_user: current_user_token) -> ReturnVa def update_house(house: HouseUpdate, current_user: current_user_token, db: db_dependency) -> ReturnValue[Any]: db_house = house_service.update(db=db, house=house) return ReturnValue(status=200, data=db_house) + +@public_router.delete("/delete/{house_id}", response_model=ReturnValue[Any]) +def delete_house(house_id: str, current_user: current_user_token, db: db_dependency) -> ReturnValue[Any]: + db_house = house_service.delete(db=db, house_id=house_id) + return ReturnValue(status=200, data="Deleted") diff --git a/backend/services/house/house_service.py b/backend/services/house/house_service.py index cc45487..931fc77 100644 --- a/backend/services/house/house_service.py +++ b/backend/services/house/house_service.py @@ -21,3 +21,6 @@ class HouseService(BaseService): def update(self, db: Session, house: HouseUpdate): return self.repos.update(db=db, house=house) + + def delete(self, db: Session, house_id: str): + return self.repos.delete(db=db, house_id=house_id) diff --git a/frontend/.eslintrc.cjs b/frontend/.eslintrc.cjs index f353c82..db21f0e 100644 --- a/frontend/.eslintrc.cjs +++ b/frontend/.eslintrc.cjs @@ -1,11 +1,13 @@ module.exports = { root: true, - env: { - browser: true, - es2021: true, - }, - plugins: ['solid'], - extends: ['eslint:recommended', 'plugin:solid/recommended'], + env: { browser: true, es2021: true }, + plugins: ['react-refresh'], + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + ], overrides: [ { env: { @@ -18,15 +20,22 @@ module.exports = { }, ], ignorePatterns: ['dist', '.eslintrc.cjs'], - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - }, + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + settings: { react: { version: '18.2' } }, rules: { - indent: ['warn', 2], + 'react/jsx-no-target-blank': 'off', + 'react/prop-types': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + 'react-hooks/exhaustive-deps': 'off', + // indent: ['warn', 2], quotes: ['error', 'single'], semi: ['error', 'never'], - 'max-lines-per-function': [1, 1000], + 'max-lines-per-function': [1, 300], 'no-unused-vars': ['warn'], + 'no-prototype-builtins': 'off', + 'react/display-name': 'off', }, } diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/frontend/index.html b/frontend/index.html index ad3f3e7..cdf59e1 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -15,7 +15,6 @@
- - +