Advertisement
mierzvoj

Untitled

May 14th, 2022
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. import sqlite3
  2. import sys
  3. from sqlite3 import Cursor
  4. import os
  5. import click as click
  6.  
  7. from database import database
  8. from database.database import Database
  9. from rooms import rooms_service
  10. from users import users_service
  11. from users.user_model import User
  12. from rooms.rooms_service import Room
  13.  
  14. db = Database
  15.  
  16.  
  17. @click.pass_context
  18. def user(obj, login, password):
  19. print(obj)
  20. with obj:
  21. cursor = obj['db'].cursor()
  22. user = users_service.login(cursor, login, password)
  23. if user is None:
  24. print("Wrong credentials!")
  25. exit(1)
  26. obj['user'] = user
  27. obj['db'] = db
  28.  
  29.  
  30. @click.group()
  31. @click.pass_context
  32. def run_command(ctx):
  33. ctx.obj = {
  34. 'db': db
  35. }
  36.  
  37.  
  38. @run_command.group('user')
  39. def user_command():
  40. pass
  41.  
  42.  
  43. @user_command.command('register')
  44. @click.option("--login", required=True, prompt=True)
  45. @click.password_option()
  46. @click.pass_obj
  47. def registerNewUser(obj, login, password):
  48. if users_service.ifUserExists(obj['db'], login):
  49. print("This name is taken")
  50. exit()
  51. users_service.insertIntoUsers(obj['db'], login, password)
  52.  
  53.  
  54. @user_command.command("login")
  55. @click.option("--login", required=True, prompt=True)
  56. @click.password_option(confirmation_prompt=False)
  57. @click.pass_obj
  58. def login(obj, login, password):
  59. user = users_service.login(obj['db'], login, password)
  60. print("Logged as")
  61. print(user.login)
  62. obj['user'] = user
  63. obj['db'] = db
  64.  
  65.  
  66. @user_command.command("list")
  67. @click.pass_obj
  68. @click.option("--filter", required=False)
  69. def listAllUsers(obj, filter):
  70. for user in users_service.getAllUsers(obj['db']):
  71. if filter is None:
  72. print(user.login)
  73. elif user.login.find(filter) > -1:
  74. print(user.login)
  75.  
  76.  
  77. @user_command.command("delete")
  78. @click.pass_obj
  79. @click.option("--login", required=True, prompt=True)
  80. def remove_command(obj, login):
  81. users_service.deleteUser(obj['db'], login)
  82.  
  83.  
  84. @run_command.group('room')
  85. @click.option("--login", required=True, prompt=True)
  86. @click.password_option(confirmation_prompt=False)
  87. @click.pass_obj
  88. def rooms_command(obj, login, password):
  89. user(obj, login, password)
  90.  
  91.  
  92. @rooms_command.command('create')
  93. @click.password_option("--room-password", confirmation_prompt=True)
  94. @click.pass_obj
  95. def create_command(obj, room_password):
  96. rooms_service.insertIntoRooms(obj['db'].cursor(), obj['user'].id, room_password)
  97.  
  98.  
  99. if __name__ == '__main__':
  100. run_command()
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement