-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
123 lines (117 loc) · 3.93 KB
/
main.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from flask import (
Flask,
request,
jsonify
)
app = Flask(__name__)
app.config['DEBUG'] = True
@app.route('/verificaRut',methods=['POST'])
def digitoVerificador():
if (request.method=='POST'):
ValueDv = False # verificación
if ('rut' not in request.form):
return {
'ok': False,
'msg': 'Error de ingreso de datos'
}
rut = request.form.get('rut')
CompleteRut = rut.split('-')
rutUsable = CompleteRut[0]
if (len(rutUsable)<7):
return {
'ok': False,
'msg': 'El rut ingresado '+ rut +' no es valido'
}
suma = sumaRut(rutUsable)
if (suma==0):
return {
'ok':False,
'msg': 'El rut ingresado ' + rut + ' es invalido o el formato esta errado'
}
dv = (11-(suma%11))
if (CompleteRut[1] in (0,1,2,3,4,5,6,7,8,9,'1','2','3','4','5','6','7','8','9','K','k','0')):
ValueDv = True
if (CompleteRut[1]=='K' or CompleteRut[1]=='k'):
CompleteRut[1]=10
elif (CompleteRut[1]=='0' or CompleteRut[1]==0):
CompleteRut[1]=11
if (ValueDv == True):
if (dv == int(CompleteRut[1])):
if (dv==10):
return {
'ok': True,
'msg': 'El rut ingresado ' + rut + ' es valido y tiene como digito verificador K'
}
elif (dv==11):
return {
'ok':True,
'msg': 'El rut ingresado '+ rut +' es valido y tiene como digito verificador 0'
}
else:
return {
'ok':True,
'msg': 'El rut ingresado '+ rut +' es valido y tiene como digito verificador '+ CompleteRut[1]
}
else:
return {
'ok': False,
'msg': 'El rut ingresado ' + rut + ' es invalido o el formato esta errado'
}
return {
'ok': False,
'msg': 'El rut ingresado ' + rut +' es invalido o el formato esta errado',
}
def sumaRut(rut):
suma = 0
k=2
rutInvertido = rut[::-1]
for i in range(len(rut)):
if rutInvertido[i] not in (0,1,2,3,4,5,6,7,8,9,'1','2','3','4','5','6','7','8','9','0'):
suma=0
return suma
if (i<6):
suma = suma + int(rutInvertido[i])*k
k+=1
elif (i==6):
k=2
suma += int(rutInvertido[i])*k
else:
k+=1
suma += int(rutInvertido[i])*k
return suma
@app.route('/nombrePropio',methods=['POST'])
def nombrePropio():
if request.method=='POST':
name = request.form.get('name')
apellido_m = request.form.get('apellido_m')
apellido_p = request.form.get('apellido_p')
gender = request.form.get('gender')
arrayInput = [
name,
apellido_m,
apellido_p,
gender
]
for i in arrayInput:
if (checkInput(i)):
return {
'ok': False,
'msg': 'No se permiten caracteres a excepcion de letras en los nombres'
}
if (gender not in ('M','m','F','f')):
return {
'ok': False,
'msg': 'El genero no coincide con lo permitido, ingrese (M,F,m,f)'
}
if gender=='M' or gender=='m':
gender='Sr.'
elif gender=='F' or gender=='f':
gender='Sra.'
nombreCompleto = gender + ' ' + name + ' ' + apellido_p + ' ' + apellido_m
return {
'ok': True,
'msg': 'Hola '+ nombreCompleto.title()
}
def checkInput(inputString):
return any(char.isdigit() for char in inputString)
app.run()