TiBillet-Ticket-Nonfree/DjangoFiles/QrcodeCashless/management/commands/load_card_json.py

69 lines
1.9 KiB
Python

import json
import os
from django.core.exceptions import ValidationError
from django.core.management.base import BaseCommand
from Customers.models import Client, Domain
from QrcodeCashless.models import Detail, CarteCashless
from django.core.validators import URLValidator
import csv, uuid
class Command(BaseCommand):
def is_string_an_url(self, url_string):
validate_url = URLValidator()
try:
validate_url(url_string)
except ValidationError as e:
return False
return True
def handle(self, *args, **options):
for client in Client.objects.all():
print (client.schema_name)
input_client = input('quel client ? \n')
client_tenant = Client.objects.get(schema_name=input_client)
print(' ')
print('url, numéro imprimé len(8), fisrt tag id len(8)')
input_generation = input('quelle génération ? \n')
print(' ')
detail_carte, created = Detail.objects.get_or_create(
base_url='https://m.tibillet.re/',
origine=client_tenant,
generation=input_generation,
)
file = open('data/CarteCashlessBisik.json')
json_dict = json.load(file)
for card in json_dict:
tag_id = card['fields']['tag_id']
number = card['fields']['number']
if tag_id and number:
# on va generer un faux uuid pour le bisik
# Namespace hardcodé volontairement pour vérification
namespace = uuid.UUID('6ba7b811-9dad-11d1-80b4-00c04fd430c8')
gen_uuid = uuid.uuid5(namespace, number)
print(tag_id)
print(number)
print(gen_uuid)
carte, created = CarteCashless.objects.get_or_create(
tag_id=tag_id,
uuid=gen_uuid,
number=number,
detail=detail_carte,
)