# Copyright 2020 Coop IT Easy SCRL fs # Robin Keunen # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import _ from odoo.fields import Date def date_validator(field, value, error): try: Date.from_string(value) except ValueError as e: return error( field, _("{} does not match format '%Y-%m-%d'".format(value)) ) # todo consistency: S_SR_GET, S_SR_RETURN_GET, S_SR_POST ... # and denormalize dict rather than updating them S_SUBSCRIPTION_REQUEST_BASE = { "name": {"type": "string", "required": True, "empty": False}, "email": {"type": "string", "required": True, "empty": False}, "ordered_parts": {"type": "integer", "required": True}, "address": { "type": "dict", "schema": { "street": {"type": "string", "required": True, "empty": False}, "zip_code": {"type": "string", "required": True, "empty": False}, "city": {"type": "string", "required": True, "empty": False}, "country": {"type": "string", "required": True, "empty": False}, }, }, "lang": {"type": "string", "required": True, "empty": False}, } S_SUBSCRIPTION_REQUEST_GET = { **S_SUBSCRIPTION_REQUEST_BASE, **{ "id": {"type": "integer", "required": True}, "date": {"type": "string", "required": True, "empty": False}, "state": {"type": "string", "required": True, "empty": False}, "share_product": { "type": "dict", "schema": { "id": {"type": "integer", "required": True}, "name": {"type": "string", "required": True, "empty": False}, }, }, }, } S_SUBSCRIPTION_REQUEST_CREATE = { **S_SUBSCRIPTION_REQUEST_BASE, **{"share_product": {"type": "integer", "required": True}}, } S_SUBSCRIPTION_REQUEST_UPDATE = { "name": {"type": "string"}, "email": {"type": "string"}, "ordered_parts": {"type": "integer"}, "state": {"type": "string"}, "address": { "type": "dict", "schema": { "street": {"type": "string"}, "zip_code": {"type": "string"}, "city": {"type": "string"}, "country": {"type": "string"}, }, }, "lang": {"type": "string"}, "share_product": {"type": "integer"}, } S_SUBSCRIPTION_REQUEST_LIST = { "count": {"type": "integer", "required": True}, "rows": { "type": "list", "schema": {"type": "dict", "schema": S_SUBSCRIPTION_REQUEST_GET}, }, }