Repository navigation
Expand file tree
/
Copy pathcli.py
More file actions
75 lines (67 loc) · 2.18 KB
/
Copy pathcli.py
File metadata and controls
75 lines (67 loc) · 2.18 KB
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
73
74
75
import click
import json_manager
@click.group()
def cli():
pass
@cli.command()
def usuarios():
data = json_manager.leer_json()
for i in data:
print(f"{i['id']}: {i['nombre']} {i['apellido']}")
@cli.command()
@click.option('--nombre', required=True, help='Nombre de usuario')
@click.option('--apellido', required=True, help='Apellido de usuario')
@click.pass_context
def nuevo(ctx, nombre, apellido):
if not nombre or not apellido:
ctx.fail('Nombre y apellido son obligatorios')
data = json_manager.leer_json()
nuevo_id =len(data) + 1
nuevo_usuario = {
'id': nuevo_id,
'nombre': nombre,
'apellido': apellido
}
data.append(nuevo_usuario)
json_manager.escribir_json(data)
print(f'Usuario {nombre} {apellido} fue creado correctamente con id {nuevo_id}')
@cli.command()
@click.argument('id', type=int)
def usuario(id):
data = json_manager.leer_json()
usuario = next((x for x in data if x['id'] == id), None)
if usuario is None:
print(f'Usuario con {id} no fue encontrado')
return
print(f"{usuario['id']} - {usuario['nombre']} - {usuario['apellido']}")
@cli.command()
@click.argument('id', type=int)
def eliminar(id):
data = json_manager.leer_json()
usuario = next((x for x in data if x['id'] == id), None)
if usuario is None:
print(f'Usuario con {id} no fue encontrado')
return
data.remove(usuario)
json_manager.escribir_json(data)
print(f'Usuario con id {id} fue eliminado correctamente')
@cli.command()
@click.argument('id', type=int)
@click.option('--nombre', required=True, help='Nombre de usuario')
@click.option('--apellido', required=True, help='Apellido de usuario')
def actualizar(id, nombre, apellido):
data = json_manager.leer_json()
encontrado = False
for usuario in data:
if usuario['id'] == id:
usuario['nombre'] = nombre
usuario['apellido'] = apellido
encontrado = True
break
if not encontrado:
print(f'Usuario con {id} no fue encontrado')
return
json_manager.escribir_json(data)
print(f'Usuario con {id} fue actualizado')
if __name__ == "__main__":
cli()