diff --git a/api.saladeaula.digital/app/routes/courses/__init__.py b/api.saladeaula.digital/app/routes/courses/__init__.py index 0f83777..789ec9a 100644 --- a/api.saladeaula.digital/app/routes/courses/__init__.py +++ b/api.saladeaula.digital/app/routes/courses/__init__.py @@ -53,8 +53,7 @@ class Course(BaseModel): name: str access_period: int cert: Cert - draft: bool = False - demo: bool = False + unlisted: bool = False rawfile: bytes | None = None @@ -88,7 +87,7 @@ def put_course(course_id: str): update_expr='SET #name = :name, \ access_period = :access_period, \ cert = :cert, \ - draft = :draft, \ + unlisted = :unlisted, \ updated_at = :updated_at', expr_attr_names={ '#name': 'name', @@ -97,7 +96,7 @@ def put_course(course_id: str): ':name': course.name, ':cert': course.cert.model_dump(), ':access_period': course.access_period, - ':draft': course.draft, + ':unlisted': course.unlisted, ':updated_at': now(), }, cond_expr='attribute_exists(sk)', diff --git a/api.saladeaula.digital/app/routes/users/__init__.py b/api.saladeaula.digital/app/routes/users/__init__.py index cfb0466..ae87ccf 100644 --- a/api.saladeaula.digital/app/routes/users/__init__.py +++ b/api.saladeaula.digital/app/routes/users/__init__.py @@ -1,8 +1,12 @@ +from typing import Annotated + from aws_lambda_powertools.event_handler.api_gateway import Router from aws_lambda_powertools.event_handler.exceptions import ( NotFoundError, ) +from aws_lambda_powertools.event_handler.openapi.params import Body from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair +from layercake.extra_types import CpfStr, NameStr from boto3clients import dynamodb_client from config import USER_TABLE @@ -23,3 +27,11 @@ def get_user(user_id: str): KeyPair(user_id, '0'), exc_cls=NotFoundError, ) + + +@router.patch('/') +def update( + user_id: str, + name: Annotated[NameStr, Body(embed=True)], + cpf: Annotated[CpfStr, Body(embed=True)], +): ... diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx index 08ade5e..e6286cf 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.courses._index/route.tsx @@ -52,7 +52,7 @@ export async function loader({ context, request, params }: Route.LoaderArgs) { const courses = createSearch({ index: 'saladeaula_courses', sort: ['created_at:desc'], - filter: 'draft NOT EXISTS', + filter: 'unlisted NOT EXISTS', hitsPerPage: 100, env: context.cloudflare.env }) diff --git a/apps/saladeaula.digital/app/routes.ts b/apps/saladeaula.digital/app/routes.ts index 9867774..d3e8b61 100644 --- a/apps/saladeaula.digital/app/routes.ts +++ b/apps/saladeaula.digital/app/routes.ts @@ -13,7 +13,8 @@ export default [ route('settings', 'routes/settings/layout.tsx', [ index('routes/settings/profile.tsx'), route('emails', 'routes/settings/emails/index.tsx'), - route('password', 'routes/settings/password.tsx') + route('password', 'routes/settings/password.tsx'), + route('orgs', 'routes/settings/orgs.tsx') ]), route('konviva', 'routes/konviva.ts'), route('player/:id', 'routes/player.tsx'), diff --git a/apps/saladeaula.digital/app/routes/settings/layout.tsx b/apps/saladeaula.digital/app/routes/settings/layout.tsx index 71fb6e2..8d5c64a 100644 --- a/apps/saladeaula.digital/app/routes/settings/layout.tsx +++ b/apps/saladeaula.digital/app/routes/settings/layout.tsx @@ -50,6 +50,7 @@ const links = [ { to: '', title: 'Perfil', end: true }, { to: 'emails', title: 'Emails' }, { to: 'password', title: 'Senha' } + // { to: 'orgs', title: 'Empresas' } ] export default function Layout({ loaderData: { data } }: Route.ComponentProps) { diff --git a/apps/saladeaula.digital/app/routes/settings/orgs.tsx b/apps/saladeaula.digital/app/routes/settings/orgs.tsx new file mode 100644 index 0000000..050f138 --- /dev/null +++ b/apps/saladeaula.digital/app/routes/settings/orgs.tsx @@ -0,0 +1,20 @@ +import { + Card, + CardDescription, + CardHeader, + CardTitle +} from '@repo/ui/components/ui/card' + +export default function Route() { + return ( + + + Empresas + + As empresas associadas à sua conta poderão disponibilizar cursos para + você enquanto estiverem associadas. + + + + ) +} diff --git a/apps/studio.saladeaula.digital/app/routes/edit.tsx b/apps/studio.saladeaula.digital/app/routes/edit.tsx index 65f75c3..e8bb88c 100644 --- a/apps/studio.saladeaula.digital/app/routes/edit.tsx +++ b/apps/studio.saladeaula.digital/app/routes/edit.tsx @@ -64,7 +64,7 @@ const formSchema = z rawfile: z .instanceof(File, { message: 'Anexe um arquivo HTML' }) .optional(), - draft: z.boolean() + unlisted: z.boolean() }) .refine( (data) => { @@ -92,7 +92,7 @@ export type Course = { name: string access_period: number cert?: Cert - draft?: boolean + unlisted?: boolean } export function meta({}: Route.MetaArgs) { @@ -164,7 +164,7 @@ function Editing() { const form = useForm({ resolver: zodResolver(formSchema), defaultValues: { - draft: false, + unlisted: false, given_cert: !!course?.cert, never_expires: !course?.cert?.exp_interval, ...course @@ -373,7 +373,7 @@ function Editing() { ( @@ -383,7 +383,7 @@ function Editing() { {...field} /> - Ocultar o curso no catálogo + Não listar no catálogo de cursos )} /> diff --git a/apps/studio.saladeaula.digital/app/routes/index.tsx b/apps/studio.saladeaula.digital/app/routes/index.tsx index ae2df9e..50c4672 100644 --- a/apps/studio.saladeaula.digital/app/routes/index.tsx +++ b/apps/studio.saladeaula.digital/app/routes/index.tsx @@ -134,14 +134,14 @@ function List({ term, hits = [] }: { term: string; hits: Course[] }) { ) } -function Course({ id, name, access_period, cert, draft }: Course) { +function Course({ id, name, access_period, cert, unlisted }: Course) { return ( {({ isPending }) => ( {isPending && ( @@ -188,7 +188,7 @@ function Course({ id, name, access_period, cert, draft }: Course) { )} - {draft && ( + {unlisted && (