add skills endpoints

This commit is contained in:
ivankirpichnikov
2025-11-22 04:26:06 +03:00
parent 690faecfeb
commit fc52561154
8 changed files with 161 additions and 1 deletions
@@ -0,0 +1,27 @@
from collections.abc import Sequence
from sqlalchemy import insert, select
from sqlalchemy.ext.asyncio import AsyncSession
from template_project.adapters.data_gateways.tables import key_skills_table
class KeySkillsDataGateway:
def __init__(self, session: AsyncSession) -> None:
self._session = session
async def query(self, query: str) -> Sequence[str]:
statement = (
select(key_skills_table.c.name)
.where(key_skills_table.c.name.ilike(f"{query}%"))
.order_by(key_skills_table.c.name)
.limit(30)
)
result = await self._session.execute(statement)
return result.scalars().all()
async def add_skills(self, name: list[str]) -> None:
insert_statement = insert(key_skills_table).values(
[{"name": _} for _ in name]
)
await self._session.execute(insert_statement)
@@ -8,6 +8,7 @@ from sqlalchemy import (
DateTime,
Enum,
ForeignKey,
Integer,
MetaData,
Numeric,
String,
@@ -118,6 +119,12 @@ resume_prediction_table: Final = Table(
Column("to_salary", Numeric, nullable=False),
Column("recommended_skills", ARRAY(String, as_tuple=True), nullable=False),
)
key_skills_table: Final = Table(
"key_skills",
meta_data,
Column("id", Integer, autoincrement=True, primary_key=True),
Column("name", String, nullable=False, unique=True)
)
mapper_registry.map_imperatively(User, user_table)