import traceback import logging class SetRepo: async def set_repo(self, user_id: int, project_id: int, repo_id: int): try: db, cb = self.db, self.cb user = await self.find(user_id) project = await db.find_one({"_id": f"p{user_id}{project_id}"}) if not user: return 'not exists' elif not project: return 'Project not found' hmm = await self.get_repos(user_id) if not hmm: logging.info(f"Set repo 16: {hmm}") return 'Repo not found' yes = False for x in hmm: if int(x.get('id', 0)) == int(repo_id): yes = True name = x.get('name') break if not yes: logging.info("Cannot find project") return 'Repo not found' log = project.get('logs') log += f"{self.lf}: Repo linked successfully" await db.update_one( {"_id": f"p{user_id}{project_id}"}, {"$set": { "logs": log, "repo": repo_id, "repo_name": name }} ) return 'ok' except Exception as e: logging.error(traceback.format_exc()) return f"Error: {e}"