diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx index 7a119ce..0f46bfe 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx @@ -180,8 +180,6 @@ export default function Route({ loaderData: { order } }: Route.ComponentProps) { reset() }, []) - console.log(order) - return (
@@ -342,14 +340,29 @@ type PaymentMethodProps = { type BankSlipPaymentMethodProps = PaymentMethodProps & {} -function BankSlipPaymentMethod({ status }: BankSlipPaymentMethodProps) { +function BankSlipPaymentMethod({ + status, + invoice +}: BankSlipPaymentMethodProps) { return ( - +
+
    +
  • Boleto bancário
  • +
  • + +
  • +
+ + {invoice?.bank_slip ? ( + <> + + + ) : null} +
) } diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments._index/columns.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments._index/columns.tsx index d0a09a9..f636f43 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments._index/columns.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments._index/columns.tsx @@ -1,11 +1,17 @@ 'use client' import { type ColumnDef } from '@tanstack/react-table' +import { EllipsisIcon, ReceiptTextIcon } from 'lucide-react' +import { NavLink } from 'react-router' -// import { -// DataTableColumnHeaderSelect, -// DataTableColumnSelect -// } from '@repo/ui/components/data-table' +import { Button } from '@repo/ui/components/ui/button' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger +} from '@repo/ui/components/ui/dropdown-menu' +import { Spinner } from '@repo/ui/components/ui/spinner' import { columns as columns_, type Order } from '@repo/ui/routes/orders/columns' export type { Order } @@ -17,5 +23,41 @@ export const columns: ColumnDef[] = [ // cell: DataTableColumnSelect, // meta: { className: 'w-9' } // }, - ...columns_ + ...columns_, + { + id: 'action', + cell: ActionMenu, + meta: { className: 'w-12' } + } ] + +function ActionMenu({ row }: { row: any }) { + return ( +
+ + + + + + e.preventDefault()}> + + {({ isPending }) => ( + <> + {isPending ? : } + Detalhes + + )} + + + + +
+ ) +} diff --git a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx index b45ea65..ddb2392 100644 --- a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx +++ b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx @@ -2,8 +2,15 @@ import { type ColumnDef } from '@tanstack/react-table' import { EllipsisIcon, ReceiptTextIcon } from 'lucide-react' +import { NavLink } from 'react-router' import { Abbr } from '@repo/ui/components/abbr' +import { + DataTableColumnCpfCnpj, + DataTableColumnHeaderSelect, + DataTableColumnSelect +} from '@repo/ui/components/data-table' +import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar' import { Button } from '@repo/ui/components/ui/button' import { DropdownMenu, @@ -12,18 +19,11 @@ import { DropdownMenuSeparator, DropdownMenuTrigger } from '@repo/ui/components/ui/dropdown-menu' -import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar' import { initials } from '@repo/ui/lib/utils' -import { - DataTableColumnCpfCnpj, - DataTableColumnHeaderSelect, - DataTableColumnSelect -} from '@repo/ui/components/data-table' import { columns as columns_, type Order } from '@repo/ui/routes/orders/columns' -import { CopyToClipboardItem } from '../_app.users._index/columns' import { Spinner } from '@repo/ui/components/ui/spinner' -import { NavLink } from 'react-router' +import { CopyToClipboardItem } from '../_app.users._index/columns' export type { Order } diff --git a/enrollments-events/app/events/issue_cert.py b/enrollments-events/app/events/issue_cert.py index 09810cf..b05b37c 100644 --- a/enrollments-events/app/events/issue_cert.py +++ b/enrollments-events/app/events/issue_cert.py @@ -57,7 +57,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: if cert.get('exp_interval', 0) > 0 else None ) - s3_uri = _generate_cert( + s3_uri = _upload_cert( enrollment_id, cert=cert, user=new_image['user'], @@ -116,7 +116,7 @@ User = TypedDict('User', {'name': str, 'cpf': str}) Cert = TypedDict('Cert', {'s3_uri': NotRequired[str]}) -def _generate_cert( +def _upload_cert( id: str, *, score: int | float, @@ -167,6 +167,9 @@ def _generate_cert( ) logger.info(f'PDF uploaded successfully to {s3_uri}') + except requests.exceptions.Timeout: + logger.info('The request timed out') + raise except requests.exceptions.RequestException as exc: logger.exception(exc) raise diff --git a/http-api/app/rules/enrollment.py b/http-api/app/rules/enrollment.py index 98994ec..4d392bd 100644 --- a/http-api/app/rules/enrollment.py +++ b/http-api/app/rules/enrollment.py @@ -220,7 +220,9 @@ def set_status_as_canceled( item={ 'id': id, 'sk': 'CANCELED', - 'canceled_by': created_by, + # 'canceled_by': created_by, + 'user_id': created_by['id'], + 'name': created_by['name'], 'created_at': now_, }, ) diff --git a/http-api/template.yaml b/http-api/template.yaml index 5d3f9dd..fe87d31 100644 --- a/http-api/template.yaml +++ b/http-api/template.yaml @@ -26,7 +26,7 @@ Globals: Architectures: - x86_64 Layers: - - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:96 + - !Sub arn:aws:lambda:sa-east-1:336641857101:layer:layercake:104 Environment: Variables: TZ: America/Sao_Paulo @@ -40,9 +40,9 @@ Globals: COURSE_TABLE: !Ref CourseTable BUCKET_NAME: !Ref BucketName KONVIVA_API_URL: https://lms.saladeaula.digital - KONVIVA_SECRET_KEY: "{{resolve:ssm:/betaeducacao/konviva/secret_key/str}}" + KONVIVA_SECRET_KEY: '{{resolve:ssm:/betaeducacao/konviva/secret_key/str}}' MEILISEARCH_HOST: https://meili.saladeaula.digital - MEILISEARCH_API_KEY: "{{resolve:ssm:/saladeaula/meili_api_key}}" + MEILISEARCH_API_KEY: '{{resolve:ssm:/saladeaula/meili_api_key}}' Resources: HttpLog: @@ -54,7 +54,7 @@ Resources: Type: AWS::Serverless::HttpApi Properties: CorsConfiguration: - AllowOrigins: ["*"] + AllowOrigins: ['*'] AllowMethods: [GET, POST, PUT, DELETE, PATCH, OPTIONS] AllowHeaders: [Content-Type, X-Requested-With, Authorization, X-Tenant] AllowCredentials: false @@ -64,7 +64,7 @@ Resources: Authorizers: LambdaRequestAuthorizer: FunctionArn: !GetAtt AuthFunction.Arn - AuthorizerPayloadFormatVersion: "2.0" + AuthorizerPayloadFormatVersion: '2.0' EnableFunctionDefaultPermissions: true EnableSimpleResponses: true Identity: diff --git a/orders-events/app/events/billing/cancel_enrollment.py b/orders-events/app/events/billing/cancel_enrollment.py index de6a0ea..09022d2 100644 --- a/orders-events/app/events/billing/cancel_enrollment.py +++ b/orders-events/app/events/billing/cancel_enrollment.py @@ -68,7 +68,7 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: # Add `created_by` if present | ( { - # Post-migration: rename `author` to `canceled_by` + # Post-migration: rename `author` to `canceled_by` 'author': { 'id': canceled_by['user_id'], 'name': canceled_by['name'],