controllers.py 4.03 KB
#!/usr/bin/python3
from requests.sessions import session
from odoo import http

TOKEN ="""a2354mtrgrerxswertyhj76543edfghoiuhEDSfvwerd-5644-fgdh34ergdf"""

class controlador_mensajes(http.Controller):
    """Controlador orientado al envio de mensajes entre incidencias y soporte"""
    @http.route('/incidencia/mensaje', auth='public', type='json' , website=False ,csrf=False, methods = ['POST','GET'])
    def index(self, **kw):
        if not kw["token"] == TOKEN:
            return({"resultado":"ALERTA DE SEGURIDAD error autenticacion"})

        inci_model = http.request.env["hgt.incidencias"].sudo()
        incidencia = inci_model.search([('in_id_si', '=', kw["in_id_si"] )])

        model =  http.request.env["hgt.incidencias_mensaje"].sudo()

        if incidencia: 
            nvo_mensaje = self.crearMensaje(model,incidencia, kw)
            incidencia.in_mensajes = (4, nvo_mensaje.id)
            incidencia.registrar_mensaje(nvo_mensaje)
            return (True)

        else:
            nva_incidencia = self.crearIncidencia(inci_model, kw)
            nvo_mensaje = self.crearMensaje(model,nva_incidencia, kw)
            nva_incidencia.in_mensajes = (4, nvo_mensaje.id)
            nva_incidencia.registrar_mensaje(nvo_mensaje)
        
            return(nva_incidencia.id)

    def crearIncidencia(self, model, kw):
        nva_inci = model.create({
            'in_fecha': kw['in_fecha'],
            'responsabilidad': kw['responsabilidad'],
            'name': kw['name'],
            'descripcion': kw['descripcion'],
            'in_id_si': kw["in_id_si"],
        })
        return(nva_inci)
    
    def crearMensaje(self, model, incidencia, kw):
        nvo_mens = model.create({
            'in_mensaje': kw['in_mensaje'],
            'in_creador': kw['in_creador'],
            'in_mens_fecha': kw['in_mens_fecha'],
        })
        #nvo_mens.in_incidencias = (4,incidencia.id)
        return(nvo_mens)

# TOKEN ="""a2354mtrgrerxsiaojifdwvpiochjnioverhjoiuhEDSfvwerd-5644-fgdh34ergdf"""

# class controlador_incidencia(http.Controller):
#     """Controlador orientado a soporte de ingreso"""
#     # #http://s2.hgtec.com.ar:8005/soporte/alta
#     # @http.route('/soporte/alta', auth='public', type='json' , website=False ,csrf=False, methods = ['POST','GET'])
#     # def index(self, **kw):
#     #     if not kw["token"] == TOKEN:
#     #         return({"resultado":"error autenticacion"})
#     #     model =  http.request.env["hgt.incidencias"].sudo()
#     #     incidencias = model.search([])
#     #     self.procesar(model,kw)
#     #     rest = []
#     #     for inc in incidencias:
#     #         rest.append(inc.descripcion)
#     #     return({"resultado":"OK",
#     #     "incidencias":rest})

#     # def procesar(self,model,kw):
#     #     print(kw)

#     #     return()

#     @http.route('/soporte/alta/2', auth='public', type='json' , website=False ,csrf=False, methods = ['POST','GET'])
#     def index(self, **kw):
#         if not kw["token"] == TOKEN:
#             return({"resultado":"ALERTA DE SEGURIDAD error autenticacion"})
#         model =  http.request.env["hgt.incidencias"].sudo()
#         incidencias = model.search([])
#         print(kw)
#         incidente_id = self.procesar_dos(model,kw)
        
#         print(incidente_id)
#         rest = []
#         for inc in incidencias:
#             rest.append(inc.descripcion)
#         return({"resultado":"OK",
#         "incidencias":rest,
#         "argum": kw})

#     def procesar_dos(self, model, kw):
#         if kw['incidencia']:
#             print(kw['incidencia'])
#         if kw['descripcion']:
#             print(kw['descripcion'])
#         if kw['fecha']:
#             print(kw['fecha'])
#         if kw['responsabilidad']:
#             print(kw['responsabilidad'])
#             nva_inci = model.create({
#                 'name': kw['incidencia'],
#                 'descripcion': kw['descripcion'],
#                 'fecha_creacion': kw['fecha'],
#                 'responsabilidad': kw['responsabilidad'],
#             })
#             return(nva_inci)