30 lines
836 B
Python
30 lines
836 B
Python
"""Hash implementation and save in database
|
|
"""
|
|
import hashlib
|
|
|
|
from citext import CIText
|
|
from sqlalchemy import Column
|
|
from sqlalchemy.dialects.postgresql import UUID
|
|
from uuid import uuid4
|
|
|
|
from ereuse_devicehub.db import db
|
|
|
|
|
|
class ReportHash(db.Model):
|
|
"""Save the hash than is create when one report is download.
|
|
"""
|
|
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid4)
|
|
id.comment = """The identifier of the device for this database. Used only
|
|
internally for software; users should not use this.
|
|
"""
|
|
hash3 = db.Column(CIText(), nullable=False)
|
|
hash3.comment = """The normalized name of the hash."""
|
|
|
|
|
|
def insert_hash(bfile):
|
|
hash3 = hashlib.sha3_256(bfile).hexdigest()
|
|
db_hash = ReportHash(hash3=hash3)
|
|
db.session.add(db_hash)
|
|
db.session.commit()
|
|
db.session.flush()
|