Skip to content
Snippets Groups Projects
Commit fa8eed0a authored by Daniel Palomar's avatar Daniel Palomar
Browse files

WIP

parent 36a4f2ca
No related branches found
No related tags found
1 merge request!64Feature/contract catalog pack pagination
Pipeline #24233 failed
from odoo_somconnexio_python_client.client import Client from odoo_somconnexio_python_client.client import Client
from odoo_somconnexio_python_client.resources.odoo_paging import Paging from odoo_somconnexio_python_client.resources.odoo_paging import Paging
from ..exceptions import ( from ..exceptions import ResourceNotFound
InvalidSortOrder,
NotNumericLimit,
NotNumericOffset,
ResourceNotFound,
)
class PagingContracts: class PagingContracts:
...@@ -79,24 +74,15 @@ class Contract: ...@@ -79,24 +74,15 @@ class Contract:
:return: Contracts object if exists and controls params to pagination :return: Contracts object if exists and controls params to pagination
""" """
params = { paging = Paging(
"customer_ref": customer_ref, customer_ref=customer_ref,
} limit=limit,
offset=limit,
if not type(limit) == int: sortOrder=limit,
raise NotNumericLimit(limit=limit) )
params["limit"] = limit paging.validate_pagintion()
params = {"customer_ref": customer_ref}
if not type(offset) == int: params.update(paging.__dict__)
raise NotNumericOffset(offset=offset)
params["offset"] = offset
if sortBy:
params["sortBy"] = sortBy
if sortOrder:
if sortOrder not in ["DESCENDING", "ASCENDING"]:
raise InvalidSortOrder
params["sortOrder"] = sortOrder
return cls._get( return cls._get(
params=params, params=params,
......
from ..exceptions import (
InvalidSortOrder,
NotNumericLimit,
NotNumericOffset,
ResourceNotFound,
)
class Paging: class Paging:
def __init__(self, **kwargs): def __init__(self, **kwargs):
self.limit = kwargs.get("limit") self.limit = kwargs.get("limit", 10)
self.total_number_records = kwargs.get("totalNumberOfRecords") self.offset = kwargs.get("offset", 0)
self.offset = kwargs.get("offset") self.sort_by = kwargs.get("sortBy", "id")
self.sort_by = kwargs.get("sortBy") self.sort_order = kwargs.get("sortOrder", "DESCENDING")
self.sort_order = kwargs.get("sortOrder") try:
self.total_number_records = kwargs["totalNumberOfRecords"]
except KeyError:
pass
def validate_pagintion(self):
if not type(self.limit) == int:
raise NotNumericLimit(limit=self.limit)
if not type(self.offset) == int:
raise NotNumericOffset(offset=self.offset)
if self.sortOrder not in ["DESCENDING", "ASCENDING"]:
raise InvalidSortOrder
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment