-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprocess.py
72 lines (56 loc) · 2.71 KB
/
process.py
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import argparse
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from auth_backend.settings import get_settings
from ..routes import app
from .group import create_group
from .scope import create_scope
from .user import create_user
from .user_group import create_user_group
settings = get_settings()
engine = create_engine(str(settings.DB_DSN))
Session = sessionmaker(bind=engine)
def get_args():
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest='command')
start = subparsers.add_parser("start")
user = subparsers.add_parser("user")
user_subparsers = user.add_subparsers(dest='subcommand')
user_create = user_subparsers.add_parser("create")
user_create.add_argument('--email', type=str, required=True)
user_create.add_argument('--password', type=str, required=True)
group = subparsers.add_parser("group")
group_subparsers = group.add_subparsers(dest='subcommand')
group_create = group_subparsers.add_parser("create")
group_create.add_argument('--name', type=str, required=True)
group_create.add_argument('--parent', type=str, required=False, default=None)
group_create.add_argument('--scopes', type=str, nargs='*')
scope = subparsers.add_parser("scope")
scope_subparsers = scope.add_subparsers(dest='subcommand')
scope_create = scope_subparsers.add_parser("create")
scope_create.add_argument('--name', type=str, required=True)
scope_create.add_argument('--creator_email', type=str, required=True)
scope_create.add_argument('--comment', type=str, required=True)
user_group = subparsers.add_parser("user_group")
user_group_subparsers = user_group.add_subparsers(dest='subcommand')
user_group_create = user_group_subparsers.add_parser("create")
user_group_create.add_argument('--email', type=str, required=True)
return parser.parse_args()
def process() -> None:
args = get_args()
session = Session()
if args.command == "start":
import uvicorn
uvicorn.run(app)
elif args.command == 'user' and args.subcommand == 'create':
print(f'Creating user with params {args}')
create_user(args.email, args.password, session)
elif args.command == 'group' and args.subcommand == 'create':
print(f'Creating group with params {args}')
create_group(args.name, args.scopes, args.parent, session)
elif args.command == 'scope' and args.subcommand == 'create':
print(f'Creating scope with params {args}')
create_scope(args.name, args.creator_email, args.comment, session)
elif args.command == 'user_group' and args.subcommand == 'create':
print(f'Creating user_group with params {args}')
create_user_group(args.email, session)