summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/user.py
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-22 17:08:53 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-22 17:08:53 +0700
commit5fdade43dd264f834a52194b22a9d687c4dc6aab (patch)
tree2f298a4e4d65332b18a931300bbf6025f0de9313 /indoteknik_api/controllers/api_v1/user.py
parent73f5869798fc5ec69d84306139de55acaca06489 (diff)
user company request and register logic
Diffstat (limited to 'indoteknik_api/controllers/api_v1/user.py')
-rw-r--r--indoteknik_api/controllers/api_v1/user.py32
1 files changed, 28 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/user.py b/indoteknik_api/controllers/api_v1/user.py
index 17bc931e..800f6bf1 100644
--- a/indoteknik_api/controllers/api_v1/user.py
+++ b/indoteknik_api/controllers/api_v1/user.py
@@ -3,6 +3,7 @@ from odoo import http
from odoo.http import request
from odoo.tools.config import config
import random, string
+from difflib import SequenceMatcher
class User(controller.Controller):
@@ -62,20 +63,43 @@ class User(controller.Controller):
return self.response(code=400, description='email, name and password is required')
user = self.get_user_by_email(email)
-
if user:
return self.response({
'register': False,
'reason': 'EMAIL_USED'
})
-
- user = request.env['res.users'].create({
+
+ user_data = {
'name': name,
'login': email,
'password': password,
'active': False,
'sel_groups_1_9_10': 9
- })
+ }
+
+ user = request.env['res.users'].create(user_data)
+
+ company = kw.get('company', False)
+ if company:
+ parameter = [
+ ('company_type', '=', 'company'),
+ ('name', 'ilike', company)
+ ]
+ match_company = request.env['res.partner'].search(parameter, limit=1)
+ match_ratio = 0
+ if match_company:
+ match_ratio = SequenceMatcher(None, match_company.name, company).ratio()
+ if match_ratio > 0.7:
+ request.env['user.company.request'].create({
+ 'user_id': user.partner_id.id,
+ 'user_company_id': match_company.id,
+ 'user_input': company
+ })
+ else:
+ new_company = request.env['res.partner'].create({
+ 'name': company
+ })
+ user.parent_id = new_company.id
return self.response({'register': True})