You've already forked RekomenciBackend
add skills endpoints
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user