You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							40 lines
						
					
					
						
							1.3 KiB
						
					
					
				| from odoo import fields, models, api | |
| import json | |
| import requests | |
| 
 | |
| 
 | |
| class MailerCloudList(models.Model): | |
|     _name = 'mailer.cloud.properties' | |
| 
 | |
|     mailer_cloud_id = fields.Char() | |
|     name = fields.Char(string='Property Name', required=True) | |
|     type = fields.Selection([ | |
|         ('text', 'Text'), | |
|         ('number', 'Number'), | |
|         ('date', 'Date'), | |
|         ('textarea', 'Textarea')], string='Type', required=True) | |
|     authorization_id = fields.Many2one('mailer.cloud.api.sync', | |
|                                        ondelete='cascade') | |
| 
 | |
|     @api.model | |
|     def create(self, vals_list): | |
|         res = super(MailerCloudList, self).create(vals_list) | |
|         try: | |
|             url = "https://cloudapi.mailercloud.com/v1/contact/property" | |
| 
 | |
|             payload = json.dumps({ | |
|                 "name": res.name, | |
|                 "type": res.type | |
|             }) | |
|             headers = { | |
|                 'Authorization': res.authorization_id.api_key, | |
|                 'Content-Type': 'application/json' | |
|             } | |
|             response = requests.request("POST", url, headers=headers, | |
|                                         data=payload) | |
|             res.write({ | |
|                 'mailer_cloud_id': response.json()['id'] | |
|             }) | |
|         except Exception as e: | |
|             pass | |
|         return res
 | |
| 
 |