refactor: simplify identifiers parameter in create_customer and update Docker config
This commit is contained in:
@@ -9,9 +9,10 @@ RUN pip install --no-cache-dir uv
|
|||||||
|
|
||||||
COPY pyproject.toml uv.lock ./
|
COPY pyproject.toml uv.lock ./
|
||||||
COPY src/ ./src/
|
COPY src/ ./src/
|
||||||
|
|
||||||
RUN uv sync --frozen --no-dev
|
RUN uv sync --frozen --no-dev
|
||||||
RUN uv pip install --editable .
|
RUN uv pip install --editable .
|
||||||
|
|
||||||
EXPOSE 3001
|
EXPOSE 3001
|
||||||
|
|
||||||
CMD ["uv", "run", "fastmcp", "run", "./src/tryton_mcp/server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "3001"]
|
CMD ["uv", "run", "fastmcp", "run", "./src/tryton_mcp/server.py", "--reload"]
|
||||||
|
|||||||
@@ -5,7 +5,14 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- "3001:3001"
|
- "3001:3001"
|
||||||
|
volumes:
|
||||||
|
- ./src:/app/src
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
- FASTMCP_HOST=0.0.0.0
|
- FASTMCP_HOST=0.0.0.0
|
||||||
|
- FASTMCP_TRANSPORT=http
|
||||||
|
- FASTMCP_PORT=3001
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
src:
|
||||||
@@ -29,4 +29,4 @@ dev = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[tool.taskipy.tasks]
|
[tool.taskipy.tasks]
|
||||||
start = "fastmcp run ./src/tryton_mcp/server.py --transport http --port 3001 --reload"
|
start = "fastmcp run src/tryton_mcp/server.py --transport 'http' --host 0.0.0.0 --port 3001 --reload"
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ class FindCustomerInput(BaseModel):
|
|||||||
|
|
||||||
class CreateCustomerInput(BaseModel):
|
class CreateCustomerInput(BaseModel):
|
||||||
name: str = Field(min_length=1, description="Customer name")
|
name: str = Field(min_length=1, description="Customer name")
|
||||||
identifiers: List[tuple[str, List[Dict[str, Any]]]] = Field(
|
identifiers: dict = Field(
|
||||||
default_factory=list, description="List of identifier tuples"
|
default_factory=dict
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ def find_customer_by_identifier(identifier: str) -> List[Dict]:
|
|||||||
|
|
||||||
@mcp.tool()
|
@mcp.tool()
|
||||||
def create_customer(
|
def create_customer(
|
||||||
name: str, identifiers: List[tuple[str, List[Dict[str, Any]]]]
|
name: str, identifiers: dict
|
||||||
) -> List[int]:
|
) -> List[int]:
|
||||||
CreateCustomerInput(name=name, identifiers=identifiers)
|
CreateCustomerInput(name=name, identifiers=identifiers)
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,20 @@ class PartyService(BaseService):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def create(
|
def create(
|
||||||
self, name: str, identifiers: List[tuple[str, List[Dict[str, Any]]]]
|
self, name: str, identifiers: dict
|
||||||
) -> TrytonResponse:
|
) -> TrytonResponse:
|
||||||
|
|
||||||
|
identifiers = [
|
||||||
|
'create', [
|
||||||
|
{
|
||||||
|
"type": identifiers.get('type', 'mobile'),
|
||||||
|
"code": identifiers.get('code')
|
||||||
|
}
|
||||||
|
]]
|
||||||
|
|
||||||
return self.call(
|
return self.call(
|
||||||
"model.party.party.create",
|
"model.party.party.create",
|
||||||
[{"name": name, "identifiers": identifiers}, {}],
|
[[{"name": name, "identifiers": [identifiers]}], {}],
|
||||||
)
|
)
|
||||||
|
|
||||||
def search_parties(
|
def search_parties(
|
||||||
|
|||||||
Reference in New Issue
Block a user