hms_bak/exely_integration/models/exely_conf.py
2024-10-29 14:44:52 +04:00

56 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
import requests
import logging
import hashlib
import json
from odoo import models, fields, api, _
from datetime import datetime, timedelta
_logger = logging.getLogger(__name__)
HEADERS = {
'X-API-KEY': 'b84f2c33-d9dc-439a-84ff-3deed4b18e10',
'Content-Type': 'application/json',
}
class ExelyApiConf(models.Model):
_name = 'exely.api.conf'
_description = 'Exely Api Conf'
api_key = fields.Char(string="API Key", required=True)
api_url = fields.Char(string="API URL", required=True)
def get_headers(self):
return [self.api_url, {
'X-API-KEY': self.api_key,
'Content-Type': 'application/json',
}]
def test_api_connection(self):
api_conf = self.get_headers()
try:
response = requests.get(f"{api_conf[0]}/companies", headers=api_conf[1])
if response.status_code == 200:
data = response.json()
message = _("Connection Test Successful!")
message_type = 'success'
else:
message = _("Connection Test Failed!")
message_type = 'danger'
except Exception as e:
message = _("Connection Test Failed!")
message_type = 'danger'
_logger.error(e)
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'message': message,
'type': message_type,
'sticky': False,
}
}