File size: 1,140 Bytes
d384b52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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}"