@shophost/rest-api 2.0.67 → 2.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/shophost-rest-api.mjs +198 -1
- package/src/bootstrap.js +1 -1
- package/src/container.js +1 -1
- package/src/core/auth/auth.schema.js +1 -1
- package/src/core/auth/auth.util.js +1 -1
- package/src/core/auth/better-auth.lib.js +1 -1
- package/src/core/auth/generate-password-hash.util.js +1 -1
- package/src/core/auth/headers.schema.js +1 -1
- package/src/core/auth/user.schema.js +1 -1
- package/src/core/db/__generated__/client/browser.js +1 -1
- package/src/core/db/__generated__/client/client.js +1 -1
- package/src/core/db/__generated__/client/enums.js +1 -1
- package/src/core/db/__generated__/client/internal/class.js +788 -1
- package/src/core/db/__generated__/client/internal/prismaNamespace.js +1 -1
- package/src/core/db/__generated__/client/internal/prismaNamespaceBrowser.js +1 -1
- package/src/core/db/index.js +1 -1
- package/src/core/email/components.js +1 -1
- package/src/core/exceptions/http-exception.js +1 -1
- package/src/core/hono/hono.js +1 -1
- package/src/core/lib/prisma.js +1 -1
- package/src/core/logging/pino.js +1 -1
- package/src/core/notifications/email.service.js +1 -1
- package/src/core/openapi/openapi.lib.js +1 -1
- package/src/core/utils/currency.util.js +1 -1
- package/src/core/utils/env.util.js +1 -1
- package/src/core/utils/object.util.js +1 -1
- package/src/core/utils/translations.util.js +1 -1
- package/src/core/utils/zod.util.js +1 -1
- package/src/db.js +1 -1
- package/src/features/access/access.handler.js +1 -1
- package/src/features/access/access.route.js +1 -1
- package/src/features/access/access.schema.js +1 -1
- package/src/features/access/access.service.js +1 -1
- package/src/features/analytics/analytics.handler.js +1 -1
- package/src/features/analytics/analytics.route.js +1 -1
- package/src/features/analytics/analytics.schema.js +1 -1
- package/src/features/analytics/analytics.service.js +1 -1
- package/src/features/cart/cart.handler.js +1 -1
- package/src/features/cart/cart.route.js +1 -1
- package/src/features/cart/cart.schema.js +1 -1
- package/src/features/cart/cart.service.js +1 -1
- package/src/features/cart/cart.util.js +1 -1
- package/src/features/customer/customer.handler.js +1 -1
- package/src/features/customer/customer.route.js +1 -1
- package/src/features/customer/customer.schema.js +1 -1
- package/src/features/customer/customer.service.js +1 -1
- package/src/features/file/file.handler.js +1 -1
- package/src/features/file/file.route.js +1 -1
- package/src/features/file/file.schema.js +1 -1
- package/src/features/file/file.service.js +1 -1
- package/src/features/health/health.handler.js +1 -1
- package/src/features/health/health.route.js +1 -1
- package/src/features/index.js +1 -1
- package/src/features/integration/integration-config.js +1 -1
- package/src/features/integration/integration-registry.js +1 -1
- package/src/features/integration/integration.handler.js +1 -1
- package/src/features/integration/integration.route.js +1 -1
- package/src/features/integration/integration.schema.js +1 -1
- package/src/features/integration/integration.service.js +1 -1
- package/src/features/inventory/inventory.service.js +1 -1
- package/src/features/location/location.handler.js +1 -1
- package/src/features/location/location.route.js +1 -1
- package/src/features/location/location.schema.js +1 -1
- package/src/features/location/location.service.js +1 -1
- package/src/features/manufacturer/manufacturer.handler.js +1 -1
- package/src/features/manufacturer/manufacturer.route.js +1 -1
- package/src/features/manufacturer/manufacturer.schema.js +1 -1
- package/src/features/manufacturer/manufacturer.service.js +1 -1
- package/src/features/order/emails/order-confirmation.email.js +1 -1
- package/src/features/order/emails/order-notification.email.js +1 -1
- package/src/features/order/fulfilment.schema.js +1 -1
- package/src/features/order/order-fulfillment.service.js +1 -1
- package/src/features/order/order.handler.js +1 -1
- package/src/features/order/order.route.js +1 -1
- package/src/features/order/order.schema.js +1 -1
- package/src/features/order/order.service.js +1 -1
- package/src/features/order/recipient.schema.js +1 -1
- package/src/features/organization/legal-entity.schema.js +1 -1
- package/src/features/organization/organization-configuration.schema.js +1 -1
- package/src/features/organization/organization.handler.js +1 -1
- package/src/features/organization/organization.route.js +1 -1
- package/src/features/organization/organization.schema.js +1 -1
- package/src/features/organization/organization.service.js +1 -1
- package/src/features/payment/payment-webhook.service.js +1 -1
- package/src/features/payment/payment.handler.js +1 -1
- package/src/features/payment/payment.route.js +1 -1
- package/src/features/payment/payment.schema.js +1 -1
- package/src/features/payment/payment.service.js +1 -1
- package/src/features/payment/stripe.service.js +1 -1
- package/src/features/product/product-modifier.schema.js +1 -1
- package/src/features/product/product.handler.js +1 -1
- package/src/features/product/product.route.js +1 -1
- package/src/features/product/product.schema.js +1 -1
- package/src/features/product/product.service.js +1 -1
- package/src/features/product-category/product-category.handler.js +1 -1
- package/src/features/product-category/product-category.route.js +1 -1
- package/src/features/product-category/product-category.schema.js +1 -1
- package/src/features/product-category/product-category.service.js +1 -1
- package/src/features/reservation/emails/reservation-cancellation.email.js +1 -1
- package/src/features/reservation/emails/reservation-confirmation.email.js +1 -1
- package/src/features/reservation/emails/reservation-notification.email.js +1 -1
- package/src/features/reservation/emails/reservation-updated.email.js +1 -1
- package/src/features/reservation/reservation.handler.js +1 -1
- package/src/features/reservation/reservation.route.js +1 -1
- package/src/features/reservation/reservation.schema.js +1 -1
- package/src/features/reservation/reservation.service.js +1 -1
- package/src/features/shipping/shipping.handler.js +1 -1
- package/src/features/shipping/shipping.route.js +1 -1
- package/src/features/shipping/shipping.service.js +1 -1
- package/src/features/shipping-method/shipping-method.handler.js +1 -1
- package/src/features/shipping-method/shipping-method.route.js +1 -1
- package/src/features/shipping-method/shipping-method.schema.js +1 -1
- package/src/features/shipping-method/shipping-method.service.js +1 -1
- package/src/features/shipping-method/shipping-zone.schema.js +1 -1
- package/src/features/webhook/webhook.handler.js +1 -1
- package/src/features/webhook/webhook.route.js +1 -1
- package/src/index.js +1 -1
- package/src/integrations/next.js +1 -1
- package/src/schemas/address.schema.js +1 -1
- package/src/schemas/currency.schema.js +1 -1
- package/src/schemas/error.schema.js +1 -1
- package/src/schemas/index.js +1 -1
- package/src/schemas/locales.schema.js +1 -1
- package/src/schemas/number.schema.js +1 -1
- package/src/schemas/pagination.schema.js +1 -1
- package/src/schemas/params.schema.js +1 -1
- package/src/schemas/queries.schema.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as t}from"@hono/zod-openapi";import{requiredNumber as a}from"../../schemas/number.schema";import{PaginationQuerySchema as i}from"../../schemas/pagination.schema";const n=e=>t.any().transform(r=>typeof r=="string"?r.trim():"").refine(r=>r.length>0,{message:`${e} is required`}),o=t.any().transform(e=>e==null||e===""?Number.NaN:Number(e)).refine(e=>Number.isFinite(e)&&e>0,{message:"Number of guests is required"}),s=t.any().refine(e=>e!=null&&e!=="",{message:"Reservation date is required"}).transform(e=>new Date(e)).refine(e=>!Number.isNaN(e.getTime()),{message:"Reservation date is required"});export const ReservationSchema=t.object({id:t.string().openapi({description:"Unique identifier for the order",example:"clj1234567890abcdef"}),firstname:t.string().openapi({description:"Customer's first name",example:"John"}),lastname:t.string().openapi({description:"Customer's last name",example:"Doe"}),guests:a,phone:t.string().openapi({description:"Customer's phone number",example:"+1234567890"}),date:t.coerce.date().openapi({description:"Reservation date and time",example:"2023-06-14T16:20:00Z"}),referenceId:t.string().openapi({description:"External reference ID for the order",example:"ORD-12345"}),acceptedAt:t.date().nullable().optional().openapi({description:"Date when the order was accepted",example:"2023-06-15T14:30:00Z"}),cancelledAt:t.date().nullable().optional().openapi({description:"Date when the order was cancelled",example:"2023-06-14T16:20:00Z"}),createdAt:t.date().nullable().optional().openapi({description:"Date when the order was created",example:"2023-06-14T16:20:00Z"})}).openapi("Reservation"),CreateReservationSchema=ReservationSchema.pick({firstname:!0,lastname:!0,guests:!0,phone:!0,date:!0}).extend({firstname:n("First name").openapi({description:"Customer's first name",example:"John"}),lastname:n("Last name").openapi({description:"Customer's last name",example:"Doe"}),guests:o.openapi({description:"Number of guests included in the reservation",example:2}),phone:n("Phone number").openapi({description:"Customer's phone number",example:"+1234567890"}),date:s.openapi({description:"Reservation date and time",example:"2023-06-14T16:20:00Z"})}).openapi("CreateReservation"),UpdateReservationSchema=CreateReservationSchema.pick({firstname:!0,lastname:!0,guests:!0,date:!0}).openapi("UpdateReservation"),ReservationListQuerySchema=i.extend({from:t.coerce.date().optional().openapi({description:"Filter reservations scheduled from this date and time",example:"2026-03-01T00:00:00.000Z"}),to:t.coerce.date().optional().openapi({description:"Filter reservations scheduled up to this date and time",example:"2026-03-31T23:59:59.999Z"})}).openapi("ReservationListQuery");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x11fd4f=_0x1412,_0x36e75f=_0x1412;(function(_0x6957bf,_0x279f42){const _0x5c9e0e=_0x1412,_0x24b53e=_0x1412,_0x2dd012=_0x6957bf();while(!![]){try{const _0xfabac8=-parseInt(_0x5c9e0e(0x113))/0x1*(parseInt(_0x5c9e0e(0x14d))/0x2)+-parseInt(_0x5c9e0e(0x14f))/0x3+-parseInt(_0x5c9e0e(0x12e))/0x4*(parseInt(_0x24b53e(0x10b))/0x5)+parseInt(_0x24b53e(0x11c))/0x6*(-parseInt(_0x5c9e0e(0x10e))/0x7)+-parseInt(_0x24b53e(0xfc))/0x8+-parseInt(_0x5c9e0e(0x122))/0x9*(parseInt(_0x24b53e(0x12a))/0xa)+parseInt(_0x5c9e0e(0x114))/0xb;if(_0xfabac8===_0x279f42)break;else _0x2dd012['push'](_0x2dd012['shift']());}catch(_0x742f35){_0x2dd012['push'](_0x2dd012['shift']());}}}(_0x40dc,0x2ff07));import{__awaiter as _0x44c6c0}from'tslib';import{z as _0x432670}from'@hono/zod-openapi';import{customAlphabet as _0x5af473}from'nanoid';import{HttpException as _0x56f9bc}from'../../core/exceptions/http-exception';import{logger as _0x36685f}from'../../core/logging/pino';import{PaginationMetaSchema as _0x1f288d,ReservationSchema as _0x5e43a7}from'../../schemas';const p=_0x5af473(_0x11fd4f(0x144)+_0x36e75f(0x105)+_0x11fd4f(0xfa)+'OPQRSTUV'+_0x11fd4f(0xf7),0x6);function _0x1412(_0x1c6571,_0x43909f){_0x1c6571=_0x1c6571-0xed;const _0x40dc6c=_0x40dc();let _0x141242=_0x40dc6c[_0x1c6571];if(_0x1412['szRUPd']===undefined){var _0x4f93dd=function(_0x40f03a){const _0x55ac08='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf24c4d='',_0x173417='';for(let _0x54e57c=0x0,_0x95b2a,_0x4ba05f,_0x4247d1=0x0;_0x4ba05f=_0x40f03a['charAt'](_0x4247d1++);~_0x4ba05f&&(_0x95b2a=_0x54e57c%0x4?_0x95b2a*0x40+_0x4ba05f:_0x4ba05f,_0x54e57c++%0x4)?_0xf24c4d+=String['fromCharCode'](0xff&_0x95b2a>>(-0x2*_0x54e57c&0x6)):0x0){_0x4ba05f=_0x55ac08['indexOf'](_0x4ba05f);}for(let _0xc9442d=0x0,_0x7c5bf2=_0xf24c4d['length'];_0xc9442d<_0x7c5bf2;_0xc9442d++){_0x173417+='%'+('00'+_0xf24c4d['charCodeAt'](_0xc9442d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x173417);};_0x1412['oAJlFF']=_0x4f93dd,_0x1412['zKyEBo']={},_0x1412['szRUPd']=!![];}const _0x39f0ca=_0x40dc6c[0x0],_0x1ce5eb=_0x1c6571+_0x39f0ca,_0x14bac1=_0x1412['zKyEBo'][_0x1ce5eb];return!_0x14bac1?(_0x141242=_0x1412['oAJlFF'](_0x141242),_0x1412['zKyEBo'][_0x1ce5eb]=_0x141242):_0x141242=_0x14bac1,_0x141242;}class g{constructor(_0x5d1349,_0x34b7be){const _0x5e67f1=_0x11fd4f,_0x1564bc=_0x11fd4f;this[_0x5e67f1(0x11a)]=_0x5d1349,this[_0x1564bc(0x137)+_0x5e67f1(0x13e)]=_0x34b7be;}[_0x36e75f(0x124)+'ndEmail'](_0xe18cc5,_0x47297d){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x4e86e5=_0x1412,_0x768a05=_0x1412;try{yield _0x47297d();}catch(_0x28ca26){_0x36685f[_0x4e86e5(0xef)](Object[_0x768a05(0xf6)]({'err':_0x28ca26},_0xe18cc5),_0x4e86e5(0xf0)+_0x4e86e5(0x139)+_0x4e86e5(0x149));}});}['createRe'+_0x11fd4f(0x12c)+'n'](_0x5b1249,_0x34d966,_0x562be9){const _0x43b501=_0x36e75f,_0x4533b4=_0x36e75f,_0xf7533c={'SbqAl':_0x43b501(0x11e)+_0x4533b4(0xf3)+_0x43b501(0x141)};return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x495dbd=_0x43b501,_0x225c63=_0x43b501;var _0x210f74;const _0x22ec16=yield this[_0x495dbd(0x11a)][_0x495dbd(0x130)+_0x495dbd(0x148)][_0x225c63(0x121)+'t']({'where':{'id':_0x5b1249},'include':{'configuration':!0x0}});if(!_0x22ec16)throw new _0x56f9bc(0x194,_0x495dbd(0x140)+_0x495dbd(0x126)+_0x225c63(0x119));if(!(!((_0x210f74=_0x22ec16['configur'+_0x225c63(0x117)])===null||_0x210f74===void 0x0)&&_0x210f74[_0x495dbd(0x11b)+_0x225c63(0x14a)+_0x495dbd(0x150)]))throw new _0x56f9bc(0x190,'This\x20org'+'anizatio'+_0x225c63(0x102)+_0x495dbd(0x132)+_0x225c63(0x111)+_0x225c63(0x152)+_0x495dbd(0xff)+_0x495dbd(0xee));const _0x6c48b3=yield this[_0x225c63(0x11a)][_0x495dbd(0x11e)+_0x225c63(0x10a)][_0x225c63(0x136)]({'data':Object[_0x225c63(0xf6)]({'referenceId':p(),'firstname':_0x562be9['firstnam'+'e'],'lastname':_0x562be9['lastname'],'guests':_0x562be9[_0x495dbd(0xf5)],'phone':_0x562be9[_0x225c63(0x115)],'date':_0x562be9[_0x495dbd(0x116)],'organization':{'connect':{'id':_0x5b1249}}},_0x34d966?{'user':{'connect':{'id':_0x34d966['id']}}}:{}),'include':{'organization':{'include':{'address':!0x0,'configuration':!0x0,'logoFile':!0x0,'members':{'include':{'user':!0x0}}}},'user':!0x0}});for(const _0xb0aab of _0x6c48b3['organiza'+_0x225c63(0x148)][_0x495dbd(0x13d)])yield this[_0x495dbd(0x124)+_0x495dbd(0x147)]({'emailType':_0xf7533c[_0x225c63(0x13a)],'memberId':_0xb0aab[_0x495dbd(0x151)]['id'],'organizationId':_0x5b1249,'reservationId':_0x6c48b3['id']},()=>this[_0x225c63(0x137)+_0x225c63(0x13e)][_0x495dbd(0x112)+'rvationN'+_0x225c63(0x109)+_0x495dbd(0xf1)](_0x5b1249,_0xb0aab[_0x495dbd(0x151)],_0x6c48b3));return _0x5e43a7['parse'](_0x6c48b3);});}[_0x11fd4f(0x12b)+_0x36e75f(0x145)](_0x33fbd5,_0x3d6316,_0x3f3972){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x3cbea6=_0x1412,_0x33ead6=_0x1412,_0x21387f=yield this[_0x3cbea6(0x11a)][_0x33ead6(0x11e)+_0x33ead6(0x10a)]['findUniq'+'ue']({'where':{'id':_0x3f3972,'organizationId':_0x3d6316,'user':{'id':_0x33fbd5['id']}}});if(!_0x21387f)throw new _0x56f9bc(0x194,_0x3cbea6(0x108)+_0x33ead6(0x11d)+_0x3cbea6(0x13c));return _0x5e43a7[_0x33ead6(0x10c)](_0x21387f);});}['getReser'+_0x11fd4f(0x150)](_0x2155fd,_0xe813c0){const _0x58be8c={'WQeBY':function(_0x2139bf,_0x52af97){return _0x2139bf||_0x52af97;}};return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x2d9946=_0x1412,_0x408714=_0x1412,{page:_0x13ffe0=0x1,limit:_0x52edce=0xa,search:_0x1694b4,from:_0x2a09de,to:_0x3f8b1e}=_0xe813c0,[_0x21377e,_0x37f735]=yield this['prisma'][_0x2d9946(0x11e)+_0x2d9946(0x10a)][_0x2d9946(0xf2)]({'orderBy':{'createdAt':_0x408714(0xfd)},'where':Object[_0x408714(0xf6)](Object['assign']({'organizationId':_0x2155fd},_0x58be8c[_0x408714(0x135)](_0x2a09de,_0x3f8b1e)?{'date':Object[_0x408714(0xf6)](Object['assign']({},_0x2a09de?{'gte':_0x2a09de}:{}),_0x3f8b1e?{'lte':_0x3f8b1e}:{})}:{}),_0x1694b4&&{'OR':[{'firstname':{'contains':_0x1694b4,'mode':_0x408714(0x12d)+_0x408714(0x14e)}},{'lastname':{'contains':_0x1694b4,'mode':_0x2d9946(0x12d)+_0x2d9946(0x14e)}},{'referenceId':{'contains':_0x1694b4,'mode':_0x2d9946(0x12d)+_0x408714(0x14e)}}]}),'include':{'user':!0x0}})[_0x2d9946(0x103)+'s']({'page':_0x13ffe0,'limit':_0x52edce});return _0x432670['object']({'meta':_0x1f288d,'list':_0x432670[_0x2d9946(0x125)](_0x5e43a7)})[_0x2d9946(0x10c)]({'meta':_0x37f735,'list':_0x21377e});});}[_0x11fd4f(0x11f)+'ervation'+'s'](_0x56c147,_0x212791,_0x58f090){const _0x299929={'lMxKL':function(_0x1b8795,_0x4f6e2f){return _0x1b8795&&_0x4f6e2f;}};return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x4a5609=_0x1412,_0x205de9=_0x1412,{page:_0x49b213=0x1,limit:_0x3a8ef1=0xa,search:_0x46d15a}=_0x58f090,[_0x2d9ee9,_0x9770a]=yield this['prisma'][_0x4a5609(0x11e)+'ion']['paginate']({'orderBy':{'createdAt':'desc'},'where':Object[_0x205de9(0xf6)]({'organizationId':_0x212791,'userId':_0x56c147},_0x299929[_0x205de9(0x110)](_0x46d15a,{'referenceId':{'contains':_0x46d15a,'mode':_0x4a5609(0x12d)+_0x4a5609(0x14e)}}))})[_0x205de9(0x103)+'s']({'page':_0x49b213,'limit':_0x3a8ef1});return _0x432670[_0x4a5609(0x133)]({'meta':_0x1f288d,'list':_0x432670[_0x4a5609(0x125)](_0x5e43a7)})[_0x4a5609(0x10c)]({'meta':_0x9770a,'list':_0x2d9ee9});});}[_0x36e75f(0x131)+'eservati'+_0x36e75f(0x13b)](_0x4964fd,_0x11c947){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x304b4c=_0x1412,_0x4d852a=_0x1412,_0x5d51cc=yield this[_0x304b4c(0x11a)][_0x4d852a(0x11e)+_0x304b4c(0x10a)][_0x304b4c(0xfb)]({'where':{'organizationId':_0x11c947,'userId':_0x4964fd}});return _0x432670[_0x4d852a(0x125)](_0x5e43a7)[_0x304b4c(0x10c)](_0x5d51cc);});}[_0x36e75f(0x129)+_0x11fd4f(0x12c)+'n'](_0xd318b5,_0x15bec9,_0x20eb71){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0xeea994=_0x1412,_0x189b11=_0x1412,_0x5c5f89=yield this['prisma'][_0xeea994(0x11e)+'ion'][_0x189b11(0x100)+'ue']({'where':{'id':_0x15bec9,'organizationId':_0xd318b5}});if(!_0x5c5f89)throw new _0x56f9bc(0x194,_0x189b11(0x108)+_0x189b11(0x11d)+_0xeea994(0x13c));if(_0x5c5f89[_0x189b11(0x118)+_0x189b11(0x101)])throw new _0x56f9bc(0x190,_0x189b11(0xfe)+_0x189b11(0xf8)+'ations\x20c'+_0x189b11(0x128)+_0x189b11(0x120));const _0x28e5ea=yield this[_0xeea994(0x11a)][_0x189b11(0x11e)+_0xeea994(0x10a)][_0xeea994(0x146)]({'where':{'id':_0x15bec9},'data':{'firstname':_0x20eb71[_0x189b11(0x138)+'e'],'lastname':_0x20eb71[_0xeea994(0x10d)],'guests':_0x20eb71['guests'],'date':_0x20eb71[_0x189b11(0x116)]},'include':{'organization':{'include':{'address':!0x0,'configuration':!0x0,'logoFile':!0x0,'members':{'include':{'user':!0x0}}}},'user':!0x0}});return yield this[_0x189b11(0x124)+'ndEmail']({'emailType':_0x189b11(0x11e)+_0x189b11(0x104)+_0x189b11(0xf9),'organizationId':_0xd318b5,'reservationId':_0x28e5ea['id']},()=>this[_0xeea994(0x137)+_0xeea994(0x13e)][_0x189b11(0x112)+_0xeea994(0xed)+_0x189b11(0x127)+'ail'](_0xd318b5,_0x28e5ea)),_0x5e43a7['parse'](_0x28e5ea);});}[_0x36e75f(0x12f)+_0x11fd4f(0x14c)](_0x2aaa01,_0x40130e,_0x22d8ea){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x358178=_0x1412,_0x1c4d49=_0x1412;if(!(yield this['prisma'][_0x358178(0x11e)+_0x358178(0x10a)][_0x358178(0x100)+'ue']({'where':{'id':_0x40130e,'organizationId':_0x2aaa01}})))throw new _0x56f9bc(0x194,_0x358178(0x108)+_0x1c4d49(0x11d)+_0x358178(0x13c));let _0x4f6db5={};switch(_0x22d8ea){case _0x1c4d49(0x14b):_0x4f6db5={'acceptedAt':new Date()};break;case _0x358178(0x10f):_0x4f6db5={'cancelledAt':new Date()};break;}const _0x4ab8f9=yield this[_0x1c4d49(0x11a)][_0x358178(0x11e)+_0x358178(0x10a)][_0x358178(0x146)]({'where':{'id':_0x40130e},'data':_0x4f6db5,'include':{'organization':{'include':{'address':!0x0,'configuration':!0x0,'logoFile':!0x0,'members':{'include':{'user':!0x0}}}},'user':!0x0}});return _0x22d8ea===_0x1c4d49(0x10f)&&(yield this[_0x1c4d49(0x124)+_0x1c4d49(0x147)]({'emailType':_0x1c4d49(0x11e)+_0x358178(0x142)+_0x358178(0xf4),'organizationId':_0x2aaa01,'reservationId':_0x4ab8f9['id']},()=>this[_0x1c4d49(0x137)+_0x358178(0x13e)][_0x1c4d49(0x112)+_0x1c4d49(0x143)+_0x1c4d49(0x107)+_0x1c4d49(0xf1)](_0x2aaa01,_0x4ab8f9))),_0x22d8ea===_0x1c4d49(0x14b)&&(yield this[_0x1c4d49(0x124)+_0x1c4d49(0x147)]({'emailType':_0x358178(0x11e)+_0x1c4d49(0x123)+_0x358178(0x134),'organizationId':_0x2aaa01,'reservationId':_0x4ab8f9['id']},()=>this[_0x1c4d49(0x137)+_0x358178(0x13e)]['sendRese'+_0x1c4d49(0x143)+'onfirmat'+_0x358178(0xf1)](_0x2aaa01,_0x4ab8f9))),_0x5e43a7['parse'](_0x4ab8f9);});}[_0x11fd4f(0x13f)+_0x36e75f(0x12c)+'n'](_0x5cd7d6,_0x439b31){return _0x44c6c0(this,void 0x0,void 0x0,function*(){const _0x694aba=_0x1412,_0x4cd7cd=_0x1412;if(!(yield this[_0x694aba(0x11a)][_0x4cd7cd(0x11e)+_0x4cd7cd(0x10a)][_0x694aba(0x100)+'ue']({'where':{'id':_0x439b31,'organizationId':_0x5cd7d6}})))throw new _0x56f9bc(0x194,_0x694aba(0x108)+_0x694aba(0x11d)+_0x4cd7cd(0x13c));yield this[_0x694aba(0x11a)][_0x694aba(0x11e)+_0x4cd7cd(0x10a)][_0x4cd7cd(0x106)]({'where':{'id':_0x439b31}});});}}export{g as ReservationService};function _0x40dc(){const _0x163cdf=['mte2odmWmtjNvhjWCK4','CgHVBMu','zgf0zq','yxrPB24','y2fUy2vSBgu','igzVDw5K','ChjPC21H','Axnby2nLChq','mJrACePRDxG','Aw9Uig5VDca','CMvZzxj2yxq','z2v0txLszxm','igvKAxrLza','zMLUzezPCNm','ndi5m3LhBKLvwG','Aw9UlwnVBMy','C2fMzwX5u2u','yxjYyxK','DgLVBIbUB3q','CgrHDgvKrw0','yw5UB3qGyMu','DxbKyxrLuMu','mtG0meD1AMHJqG','z2v0uMvZzxi','C2vYDMf0Aw8','Aw5Zzw5ZAxq','otzvExrisKG','DxbKyxrLu3q','B3jNyw5PEMe','z2v0vxnLCLi','igfJy2vWDgK','B2jQzwn0','AxjTzwq','v1fLqLK','y3jLyxrL','zw1HAwXtzxi','zMLYC3rUyw0','BgL2zxj5igy','u2jXqwW','B25Z','zM91BMq','BwvTyMvYCW','DMLJzq','zgvSzxrLuMu','t3jNyw5PEMe','zMLJyxrPB24','Aw9UlwnHBMm','CNzHDgLVBKm','mtiZndu2nZG','DMf0Aw9U','DxbKyxrL','BMrfBwfPBa','DgLVBG','ywLSzwq','Aw5NuMvZzxi','ywnJzxb0','yxr1CW','mZrgy3PZqwq','AxzL','mZq0otK0AhnUz2Pm','DMf0Aw9UCW','DxnLCG','DMf0Aw9UCYa','CNzHDgLVBLu','B21LBNq','zxjYB3i','rw1HAwWGzgu','Aw9Urw1HAwW','CgfNAw5HDgu','Aw9Ulw5VDgK','zwXSzwq','z3vLC3rZ','yxnZAwDU','v1HzwG','zcbYzxnLCNy','DgvK','r0HjsKTmtu4','zMLUze1HBNK','mJi0oti4mfL5ywzira','zgvZyW','q2fUy2vSBgu','yxqGDgHLig0','zMLUzfvUAxe','zef0','BIbPCYbUB3q','D2L0AfbHz2u','Aw9UlxvWzge','otbbqKneruy','zgvSzxrL','yw5JzwXSyxq','uMvZzxj2yxq','B3rPzMLJyxq','Aw9U','mtqWnJvAqLzyzve','CgfYC2u','BgfZDg5HBwu','mtmXmtHHENjcD0K','y2fUy2vS','Be14s0W','BMCGCMvZzxi','C2vUzfjLC2u','mtGWndD6thHLENi'];_0x40dc=function(){return _0x163cdf;};return _0x40dc();}
|
|
1
|
+
import{__awaiter as a}from"tslib";import{z as u}from"@hono/zod-openapi";import{customAlphabet as h}from"nanoid";import{HttpException as d}from"../../core/exceptions/http-exception";import{logger as f}from"../../core/logging/pino";import{PaginationMetaSchema as m,ReservationSchema as c}from"../../schemas";const p=h("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",6);class g{constructor(e,t){this.prisma=e,this.emailService=t}safelySendEmail(e,t){return a(this,void 0,void 0,function*(){try{yield t()}catch(i){f.error(Object.assign({err:i},e),"Email delivery failed")}})}createReservation(e,t,i){return a(this,void 0,void 0,function*(){var s;const r=yield this.prisma.organization.findFirst({where:{id:e},include:{configuration:!0}});if(!r)throw new d(404,"Organization not found");if(!(!((s=r.configuration)===null||s===void 0)&&s.isAcceptingReservations))throw new d(400,"This organization is not accepting reservations at the moment");const n=yield this.prisma.reservation.create({data:Object.assign({referenceId:p(),firstname:i.firstname,lastname:i.lastname,guests:i.guests,phone:i.phone,date:i.date,organization:{connect:{id:e}}},t?{user:{connect:{id:t.id}}}:{}),include:{organization:{include:{address:!0,configuration:!0,logoFile:!0,members:{include:{user:!0}}}},user:!0}});for(const o of n.organization.members)yield this.safelySendEmail({emailType:"reservation-notification",memberId:o.user.id,organizationId:e,reservationId:n.id},()=>this.emailService.sendReservationNotificationEmail(e,o.user,n));return c.parse(n)})}getReservation(e,t,i){return a(this,void 0,void 0,function*(){const s=yield this.prisma.reservation.findUnique({where:{id:i,organizationId:t,user:{id:e.id}}});if(!s)throw new d(404,"Reservation not found");return c.parse(s)})}getReservations(e,t){return a(this,void 0,void 0,function*(){const{page:i=1,limit:s=10,search:r,from:n,to:o}=t,[l,v]=yield this.prisma.reservation.paginate({orderBy:{createdAt:"desc"},where:Object.assign(Object.assign({organizationId:e},n||o?{date:Object.assign(Object.assign({},n?{gte:n}:{}),o?{lte:o}:{})}:{}),r&&{OR:[{firstname:{contains:r,mode:"insensitive"}},{lastname:{contains:r,mode:"insensitive"}},{referenceId:{contains:r,mode:"insensitive"}}]}),include:{user:!0}}).withPages({page:i,limit:s});return u.object({meta:m,list:u.array(c)}).parse({meta:v,list:l})})}getMyReservations(e,t,i){return a(this,void 0,void 0,function*(){const{page:s=1,limit:r=10,search:n}=i,[o,l]=yield this.prisma.reservation.paginate({orderBy:{createdAt:"desc"},where:Object.assign({organizationId:t,userId:e},n&&{referenceId:{contains:n,mode:"insensitive"}})}).withPages({page:s,limit:r});return u.object({meta:m,list:u.array(c)}).parse({meta:l,list:o})})}getUserReservations(e,t){return a(this,void 0,void 0,function*(){const i=yield this.prisma.reservation.findMany({where:{organizationId:t,userId:e}});return u.array(c).parse(i)})}updateReservation(e,t,i){return a(this,void 0,void 0,function*(){const s=yield this.prisma.reservation.findUnique({where:{id:t,organizationId:e}});if(!s)throw new d(404,"Reservation not found");if(s.cancelledAt)throw new d(400,"Cancelled reservations cannot be edited");const r=yield this.prisma.reservation.update({where:{id:t},data:{firstname:i.firstname,lastname:i.lastname,guests:i.guests,date:i.date},include:{organization:{include:{address:!0,configuration:!0,logoFile:!0,members:{include:{user:!0}}}},user:!0}});return yield this.safelySendEmail({emailType:"reservation-updated",organizationId:e,reservationId:r.id},()=>this.emailService.sendReservationUpdatedEmail(e,r)),c.parse(r)})}updateStatus(e,t,i){return a(this,void 0,void 0,function*(){if(!(yield this.prisma.reservation.findUnique({where:{id:t,organizationId:e}})))throw new d(404,"Reservation not found");let r={};switch(i){case"accept":r={acceptedAt:new Date};break;case"cancel":r={cancelledAt:new Date};break}const n=yield this.prisma.reservation.update({where:{id:t},data:r,include:{organization:{include:{address:!0,configuration:!0,logoFile:!0,members:{include:{user:!0}}}},user:!0}});return i==="cancel"&&(yield this.safelySendEmail({emailType:"reservation-cancelled",organizationId:e,reservationId:n.id},()=>this.emailService.sendReservationCancellationEmail(e,n))),i==="accept"&&(yield this.safelySendEmail({emailType:"reservation-confirmed",organizationId:e,reservationId:n.id},()=>this.emailService.sendReservationConfirmationEmail(e,n))),c.parse(n)})}deleteReservation(e,t){return a(this,void 0,void 0,function*(){if(!(yield this.prisma.reservation.findUnique({where:{id:t,organizationId:e}})))throw new d(404,"Reservation not found");yield this.prisma.reservation.delete({where:{id:t}})})}}export{g as ReservationService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{__awaiter as o}from"tslib";import{createApiRouter as u}from"../../core/hono/hono";import{shippingRoute as p}from"./shipping.route";export const registerShippingHandlers=s=>{const n=u();return n.openapi(p.createShippingAddress,e=>o(void 0,void 0,void 0,function*(){const r=e.get("auth"),i=e.req.valid("json"),t=yield r.getCurrentUser(),d=yield s.createShippingAddress(t.id,i,!0);return e.json(d,201)})),n.openapi(p.getShippingAddress,e=>o(void 0,void 0,void 0,function*(){const i=yield e.get("auth").getCurrentUser(),t=yield s.findShippingAddress(i.id,!0);return e.json(t,200)})),n.openapi(p.updateShippingAddress,e=>o(void 0,void 0,void 0,function*(){const r=e.get("auth"),i=e.req.valid("json"),t=yield r.getCurrentUser(),d=yield s.updateShippingAddress(t.id,i);return e.json(d,200)})),n};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{createApiRoute as s}from"../../core/hono/hono";import{CreateShippingAddressSchema as d,ErrorSchema as e,HeaderSchema as p,ShippingAddressSchema as i,UpdateShippingAddressSchema as r}from"../../schemas";const t=s({description:"Get the default shipping address for the user",headers:p,method:"GET",operationId:"getShippingAddress",path:"/shipping",responses:{200:i.nullable(),401:e},summary:"Get Shipping Address",tags:["Shipping"]}),h=s({body:d,description:"Creates a new shipping address for the user",headers:p,method:"POST",operationId:"createShippingAddress",path:"/shipping",responses:{201:i,400:e,401:e},summary:"Create Shipping Address",tags:["Shipping"]}),a=s({body:r,description:"Updates the shipping address for the user",headers:p,method:"PUT",operationId:"updateShippingAddress",path:"/shipping",responses:{200:i,400:e,401:e},summary:"Update Shipping Address",tags:["Shipping"]});export const shippingRoute={getShippingAddress:t,createShippingAddress:h,updateShippingAddress:a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{__awaiter as n}from"tslib";import{HttpException as d}from"../../core/exceptions/http-exception";import{ShippingAddressSchema as a}from"../../schemas";class o{constructor(i,e){this.prisma=i,this.locationService=e}requireLocationService(){if(!this.locationService)throw new Error("Google Maps API key is required");return this.locationService}findShippingAddress(i,e){return n(this,void 0,void 0,function*(){const r=yield this.prisma.address.findFirst({where:{users:{some:{id:i}},isDefault:e}});return r?a.parse(r):null})}createShippingAddress(i,e,r){return n(this,void 0,void 0,function*(){const t=yield this.requireLocationService().getPlaceDetails(e.placeId),s=yield this.prisma.address.create({data:{firstname:e.firstname,lastname:e.lastname,phone:e.phone,addressLineOne:e.addressLineOne,addressLineTwo:e.addressLineTwo,doorNumber:e.doorNumber,placeId:e.placeId,deliveryInstructions:e.deliveryInstructions,city:e.city,country:e.country,zipCode:e.zipCode,createdBy:i,latitude:t.latitude,longitude:t.longitude,isDefault:r,users:{connect:{id:i}}}});return a.parse(s)})}updateShippingAddress(i,e){return n(this,void 0,void 0,function*(){const r=yield this.findShippingAddress(i,!0);if(!r)throw new d(400,"No default shipping address found");const t=yield this.requireLocationService().getPlaceDetails(e.placeId),s=yield this.prisma.address.update({where:{id:r.id},data:{firstname:e.firstname,lastname:e.lastname,phone:e.phone,addressLineOne:e.addressLineOne,addressLineTwo:e.addressLineTwo,doorNumber:e.doorNumber,placeId:e.placeId,deliveryInstructions:e.deliveryInstructions,city:e.city,country:e.country,zipCode:e.zipCode,latitude:t.latitude,longitude:t.longitude,createdBy:i}});return a.parse(s)})}}export{o as ShippingService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{__awaiter as r}from"tslib";import{createApiRouter as h}from"../../core/hono/hono";import{shippingMethodRoute as p}from"./shipping-method.route";export const registerShippingMethodHandlers=a=>{const n=h();return n.openapi(p.createShippingMethod,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param"),e=i.req.valid("json"),d=yield o.isGranted("create"),s=yield a.createShippingMethod(t.organizationId,d.id,e);return i.json(s,201)})),n.openapi(p.getShippingMethod,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param");yield o.isGranted("read");const e=yield a.getShippingMethod(t.organizationId,t.id);return i.json(e,200)})),n.openapi(p.accessEligibility,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param"),e=yield o.getCurrentUser(),d=yield a.accessEligibility(e,t.organizationId);return i.json(d,200)})),n.openapi(p.getShippingMethods,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param"),e=i.req.valid("query");yield o.isGranted("read");const d=yield a.getShippingMethods(t.organizationId,Object.assign({},e));return i.json(d,200)})),n.openapi(p.updateShippingMethod,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param"),e=i.req.valid("json"),d=yield o.isGranted("update"),s=yield a.updateShippingMethod(t.organizationId,t.id,d.id,e);return i.json(s,200)})),n.openapi(p.deleteShippingMethod,i=>r(void 0,void 0,void 0,function*(){const o=i.get("auth"),t=i.req.valid("param"),e=yield o.isGranted("delete");return yield a.deleteShippingMethod(t.organizationId,t.id,e.id),i.body(null,204)})),n};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as e}from"@hono/zod-openapi";import{createApiRoute as t}from"../../core/hono/hono";import{CreateShippingMethodSchema as n,ErrorSchema as i,HeaderSchema as a,OrganizationParams as h,OrganizationWithIdParams as s,PaginationMetaSchema as d,PaginationQuerySchema as r,ShippingMethodSchema as o,UpdateShippingMethodSchema as g}from"../../schemas";const p=e.object({id:e.string().openapi({description:"ID of the shipping method",example:"clf9876543210abcdef",param:{in:"path",name:"id"}}),organizationId:e.string().openapi({description:"ID of the organization",example:"cju0z9k4z0000l1qg5z1z1z1z",param:{in:"path",name:"organizationId"}})}),m=t({headers:a,method:"GET",operationId:"getShippingMethod",path:"/:organizationId/shipping-methods/:id",pathParams:s,responses:{200:o,401:i,404:i},summary:"Get Shipping Method",tags:["ShippingMethod"]}),c=t({description:"Fetches a list of published shipping methods a user can use",headers:a,method:"GET",operationId:"accessEligibility",path:"/:organizationId/shipping-methods/access/eligibility",pathParams:h,responses:{200:e.array(o)},summary:"Get Eligible Shipping Methods",tags:["ShippingMethod"]}),S=t({description:"Fetches a paginated list of shipping methods for an organization",headers:a,method:"GET",operationId:"getShippingMethods",path:"/:organizationId/shipping-methods",pathParams:e.object({organizationId:e.string().openapi({description:"ID of the organization",example:"cju0z9k4z0000l1qg5z1z1z1z",param:{in:"path",name:"organizationId"}})}),query:r,responses:{200:e.object({list:e.array(o),meta:d}),400:i,401:i},summary:"Get Shipping Methods",tags:["ShippingMethod"]}),z=t({body:n,description:"Creates a new shipping method for an organization",headers:a,method:"POST",operationId:"createShippingMethod",path:"/:organizationId/shipping-methods",pathParams:e.object({organizationId:e.string().openapi({description:"ID of the organization",example:"cju0z9k4z0000l1qg5z1z1z1z",param:{in:"path",name:"organizationId"}})}),responses:{201:o,400:i,401:i,404:i},summary:"Create Shipping Method",tags:["ShippingMethod"]}),M=t({body:g,description:"Updates an existing shipping method",headers:a,method:"PUT",operationId:"updateShippingMethod",path:"/:organizationId/shipping-methods/:id",pathParams:p,responses:{200:o,400:i,401:i,404:i},summary:"Update Shipping Method",tags:["ShippingMethod"]}),l=t({description:"Soft deletes a shipping method",headers:a,method:"DELETE",operationId:"deleteShippingMethod",path:"/:organizationId/shipping-methods/:id",pathParams:p,responses:{204:null,400:i,401:i,404:i},summary:"Delete Shipping Method",tags:["ShippingMethod"]});export const shippingMethodRoute={getShippingMethod:m,accessEligibility:c,getShippingMethods:S,createShippingMethod:z,updateShippingMethod:M,deleteShippingMethod:l};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as e}from"@hono/zod-openapi";import{FileSchema as p}from"../file/file.schema";import{ShippingZoneSchema as i}from"./shipping-zone.schema";export const ShippingMethodSchema=e.object({id:e.string().openapi({example:"clf9876543210abcdef",description:"ID of the shipping method"}),title:e.string().min(1,"Title is required").openapi({example:"Standard Shipping",description:"Title of the shipping method"}),providerName:e.string().min(1,"Provider name is required").openapi({example:"FedEx",description:"Name of the shipping provider"}),providerLogo:p.nullable().optional().openapi({description:"Logo of the shipping provider"}),requireDateOfDelivery:e.coerce.boolean().optional().openapi({example:!0,description:"Whether the delivery time should be selected"}),shippingZones:e.array(i).openapi({description:"List of shipping zones for this shipping method"}),eligibleShippingZone:i.optional(),createdAt:e.date(),updatedAt:e.date()}).openapi("ShippingMethod"),CreateShippingMethodSchema=ShippingMethodSchema.pick({title:!0,providerName:!0,providerLogo:!0,requireDateOfDelivery:!0,shippingZones:!0}).extend({providerLogoId:e.string().cuid().optional().openapi({example:"clf9876543210abcdef",description:"ID reference to the provider logo file"})}).openapi("CreateShippingMethod"),UpdateShippingMethodSchema=CreateShippingMethodSchema.partial().openapi("UpdateShippingMethod");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{__awaiter as d}from"tslib";import{z as c}from"@hono/zod-openapi";import{HttpException as u}from"../../core/exceptions/http-exception";import{PaginationMetaSchema as l,ShippingMethodSchema as p}from"../../schemas";class v{constructor(e){this.prisma=e}findShippingMethod(e,t,i){return d(this,void 0,void 0,function*(){const n=yield this.prisma.shippingMethod.findUnique({where:{id:e,organizationId:t},include:i?.include});if(!n)throw new u(404,"Shipping method not found");return n})}findDistanceBetweenCoordinates(e,t){const i=g=>g*(Math.PI/180),r=i(t.latitude-e.latitude),s=i(t.longitude-e.longitude),o=i(e.latitude),h=i(t.latitude),a=Math.sin(r/2)*Math.sin(r/2)+Math.cos(o)*Math.cos(h)*Math.sin(s/2)*Math.sin(s/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))}accessEligibility(e,t){return d(this,void 0,void 0,function*(){const i=yield this.prisma.organization.findUnique({where:{id:t},include:{address:!0}});if(!i)throw new u(404,"Organization not found");const n=yield this.prisma.address.findFirst({where:{users:{some:{id:e.id}},isDefault:!0}});if(!n)throw new u(404,"User shipping address not found");return(yield this.prisma.shippingMethod.findMany({where:{organizationId:t},include:{shippingZones:!0}})).map(s=>{const o=this.findDistanceBetweenCoordinates({latitude:i.address.latitude,longitude:i.address.longitude},{latitude:n.latitude,longitude:n.longitude}),h=s.shippingZones.find(({distanceUpto:a})=>o<=a);return p.parse(Object.assign(Object.assign({},s),{eligibleShippingZone:h}))})})}createShippingMethod(e,t,i){return d(this,void 0,void 0,function*(){const n=yield this.prisma.shippingMethod.create({data:{title:i.title,providerName:i.providerName,providerLogoId:i.providerLogoId,requireDateOfDelivery:i.requireDateOfDelivery,organizationId:e,shippingZones:{create:i.shippingZones},createdBy:t},include:{shippingZones:!0,providerLogo:!0}});return p.parse(n)})}getShippingMethod(e,t){return d(this,void 0,void 0,function*(){const i=yield this.findShippingMethod(t,e,{include:{providerLogo:!0,shippingZones:!0}});return p.parse(i)})}getShippingMethods(e,t){return d(this,void 0,void 0,function*(){const{page:i=1,limit:n=10,search:r}=t,[s,o]=yield this.prisma.shippingMethod.paginate({orderBy:{createdAt:"desc"},where:Object.assign({organizationId:e},r&&{title:{contains:r,mode:"insensitive"}}),include:{shippingZones:!0,providerLogo:!0}}).withPages({page:i,limit:n});return c.object({meta:l,list:c.array(p)}).parse({meta:o,list:s})})}updateShippingMethod(e,t,i,n){return d(this,void 0,void 0,function*(){yield this.findShippingMethod(t,e);const r=yield this.prisma.shippingMethod.update({where:{id:t,organizationId:e},data:{title:n.title,providerName:n.providerName,providerLogoId:n.providerLogoId,requireDateOfDelivery:n.requireDateOfDelivery,shippingZones:{deleteMany:{},create:n.shippingZones},updatedBy:i},include:{providerLogo:!0,shippingZones:!0}});return p.parse(r)})}deleteShippingMethod(e,t,i){return d(this,void 0,void 0,function*(){yield this.findShippingMethod(t,e),yield this.prisma.shippingMethod.update({where:{id:t,organizationId:e},data:{archivedAt:new Date,archivedBy:i}})})}}export{v as ShippingMethodService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as i}from"@hono/zod-openapi";import{optionalNumber as p,requiredNumber as e}from"../../schemas/number.schema";export const ShippingZoneSchema=i.object({id:i.string().optional().openapi({example:"clf9876543210abcdef",description:"ID of the shipping zone"}),title:i.string().min(1,"Title is required").openapi({example:"Zone 1",description:"Title of the shipping zone"}),distanceUpto:e.openapi({example:10,description:"Ending distance for the shipping zone"}),price:e.openapi({example:5.99,description:"Price for shipping in this zone"}),minimumOrderAmount:p.openapi({example:50,description:"Minimum order amount for this shipping zone"}),eta:i.string().min(1,"ETA is required").openapi({example:"2-3 days",description:"Estimated time of arrival for this shipping zone"})}).openapi("ShippingZone");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{__awaiter as n}from"tslib";import{HttpException as i}from"../../core/exceptions/http-exception";import{createApiRouter as d}from"../../core/hono/hono";import{webhookRoutes as u}from"./webhook.route";export const registerWebhookHandlers=a=>{const t=d();return t.openapi(u.webhook,e=>n(void 0,void 0,void 0,function*(){try{const r=e.req.valid("param"),s=e.req.raw.headers.get("stripe-signature"),o=yield e.req.raw.text();return yield a.processWebhookEvent(r.provider,s,o),e.json({received:!0},200)}catch(r){if(console.error(r),r instanceof i)switch(r.status){case 400:case 401:return e.json({message:r.message,status:r.status},r.status);default:return e.json({message:"Internal Server Error",status:500},500)}return e.json({message:"Internal Server Error",status:500},500)}})),t.openapi(u.webhookByOrganization,e=>n(void 0,void 0,void 0,function*(){try{const r=e.req.valid("param"),s=e.req.raw.headers.get("stripe-signature"),o=yield e.req.raw.text();return yield a.processWebhookEvent(r.provider,s,o,r.organizationId),e.json({received:!0},200)}catch(r){if(console.error(r),r instanceof i)switch(r.status){case 400:case 401:return e.json({message:r.message,status:r.status},r.status);default:return e.json({message:"Internal Server Error",status:500},500)}return e.json({message:"Internal Server Error",status:500},500)}})),t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as o}from"@hono/zod-openapi";import{createApiRoute as r}from"../../core/hono/hono";import{ErrorSchema as e}from"../../schemas";const a=o.enum(["stripe","revolut"]).openapi({description:"Payment provider",example:"stripe",param:{in:"path",name:"provider"}}),t=r({description:"Receive webhook events from payment providers",method:"POST",operationId:"webhook",path:"/webhook/payment/:provider",pathParams:o.object({provider:a}),responses:{200:o.object({received:o.boolean()}),400:e,401:e,500:e},summary:"Process Event",tags:["Webhook"]}),i=r({description:"Receive webhook events from payment providers for a specific organization",method:"POST",operationId:"webhookByOrganization",path:"/webhook/payment/:provider/:organizationId",pathParams:o.object({provider:a,organizationId:o.string().openapi({description:"Organization ID",example:"clm1234567890abcdef",param:{in:"path",name:"organizationId"}})}),responses:{200:o.object({received:o.boolean()}),400:e,401:e,500:e},summary:"Process Event",tags:["Webhook"]});export const webhookRoutes={webhook:t,webhookByOrganization:i};
|
package/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export*from"./schemas";export*from"./features";export{bootstrap}from"./bootstrap";export{generateOpenApiSpec}from"./core/openapi/openapi.lib";export{CartItemSchema}from"./features/cart/cart.schema";
|
package/src/integrations/next.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{PrismaNeon as d}from"@prisma/adapter-neon";import{toNextJsHandler as g}from"better-auth/next-js";import{bootstrap as f}from"../bootstrap";import{createAuthClient as b}from"../core/auth/better-auth.lib";import{createPrismaClient as h}from"../core/lib/prisma";import{generateOpenApiSpec as w}from"../core/openapi/openapi.lib";export const createNextHandler=r=>{var i;const o=(i=r.prisma)!==null&&i!==void 0?i:(()=>{if(!r.database)throw new Error("createNextHandler requires either a `prisma` client or `database` options.");return"adapter"in r.database?h(r.database):h({adapter:new d({connectionString:r.database.connectionString}),log:r.database.log})})(),c=new Map,u=t=>r.auth.baseURL?r.auth.baseURL:`${new URL(t.url).origin}/api/auth`,l=t=>{const e=c.get(t);if(e)return e;const a=b(Object.assign(Object.assign({prisma:o},r.auth),{baseURL:t}));return c.set(t,a),a},m=t=>{var e,a;const n=t.split("/").filter(Boolean);return n[0]==="organizations"?(e=n[1])!==null&&e!==void 0?e:"":(a=n[0])!==null&&a!==void 0?a:""},p=f({corsOptions:r.corsOptions,maps:r.maps,payment:r.payment,prisma:o,resolveAuth:(t,e)=>{const a=l(u(t)),n=m(e);return{getCurrentUser:()=>a.getCurrentUser(t.headers),isGranted:s=>a.isGranted(t.headers,n,s)}}});return t=>{if(t.url.includes("/api/auth")){const a=l(u(t)),{GET:n,POST:s}=g(a.auth.handler);switch(t.method){case"GET":return n(t);case"POST":return s(t)}}if(t.url.includes("/api/openapi.json"))return Response.json(w());const e=new URL(t.url);return e.pathname=e.pathname.replace(/^\/api/,"")||"/",p.fetch(new Request(e,t))}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as e}from"@hono/zod-openapi";export const AddressSchema=e.object({id:e.string().cuid().openapi({example:"clf9876543210abcdef",description:"The unique identifier of the address"}),firstname:e.string().optional().nullable().openapi({example:"John",description:"The first name of the recipient"}),lastname:e.string().optional().nullable().openapi({example:"Doe",description:"The last name of the recipient"}),phone:e.string().optional().nullable().openapi({example:"+1234567890",description:"Phone number of the recipient"}),addressLineOne:e.string().openapi({example:"123 Main Street",description:"The first line of the address"}),doorNumber:e.string().nullable().optional().openapi({description:"The door number of the address"}),addressLineTwo:e.string().nullable().optional().openapi({example:"Suite 100",description:"The second line of the address"}),zipCode:e.string().optional().openapi({example:"12345",description:"The postal code of the address"}),city:e.string().openapi({example:"New York",description:"The city of the address"}),country:e.string().openapi({example:"USA",description:"The country of the address"}),placeId:e.string().nullable().optional().openapi({example:"ChIJN1t_tKlj4AR4GeTYWZ7frY",description:"The Google Place ID for the address"}),deliveryInstructions:e.string().nullable().optional().openapi({example:"Leave at the door",description:"Delivery instructions for the address"})}).openapi("Address"),CreateAddressSchema=AddressSchema.pick({addressLineOne:!0,doorNumber:!0,addressLineTwo:!0,zipCode:!0,city:!0,country:!0,placeId:!0}).extend({placeId:e.string().min(1,"This field is required").openapi({example:"ChIJN1t_tKlj4AR4GeTYWZ7frY",description:"The Google Place ID for the address"})}).openapi("CreateAddress"),UpdateAddressSchema=CreateAddressSchema.partial().openapi("UpdateAddress"),ShippingAddressSchema=AddressSchema.extend({firstname:e.string().min(2,"First Name must be at least 2 characters").openapi({example:"John",description:"The first name of the recipient"}),lastname:e.string().min(1,"Last Name must be at least 2 characters").openapi({example:"Doe",description:"The last name of the recipient"}),phone:e.string().min(4).openapi({example:"+1234567890",description:"Phone number of the recepient"})}),CreateShippingAddressSchema=ShippingAddressSchema.pick({firstname:!0,lastname:!0,phone:!0,addressLineOne:!0,addressLineTwo:!0,doorNumber:!0,zipCode:!0,city:!0,country:!0,placeId:!0,deliveryInstructions:!0}).extend({placeId:e.string().min(1,"This field is required").openapi({example:"ChIJN1t_tKlj4AR4GeTYWZ7frY",description:"The Google Place ID for the address"})}),UpdateShippingAddressSchema=CreateShippingAddressSchema.partial().extend({placeId:e.string().min(1,"This field is required").openapi({example:"ChIJN1t_tKlj4AR4GeTYWZ7frY",description:"The Google Place ID for the address"})}).openapi("UpdateShippingAddress");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as l}from"@hono/zod-openapi";export const currencyOptions=[{value:"USD",label:"United States Dollar"},{value:"EUR",label:"Euro"},{value:"GBP",label:"British Pound Sterling"},{value:"JPY",label:"Japanese Yen"},{value:"AUD",label:"Australian Dollar"},{value:"CAD",label:"Canadian Dollar"},{value:"CHF",label:"Swiss Franc"},{value:"CNY",label:"Chinese Yuan"},{value:"SEK",label:"Swedish Krona"},{value:"NZD",label:"New Zealand Dollar"},{value:"MXN",label:"Mexican Peso"},{value:"SGD",label:"Singapore Dollar"},{value:"HKD",label:"Hong Kong Dollar"},{value:"NOK",label:"Norwegian Krone"},{value:"KRW",label:"South Korean Won"},{value:"TRY",label:"Turkish Lira"},{value:"RUB",label:"Russian Ruble"},{value:"INR",label:"Indian Rupee"},{value:"BRL",label:"Brazilian Real"},{value:"ZAR",label:"South African Rand"},{value:"DKK",label:"Danish Krone"},{value:"PLN",label:"Polish Z\u0142oty"},{value:"THB",label:"Thai Baht"},{value:"IDR",label:"Indonesian Rupiah"},{value:"HUF",label:"Hungarian Forint"},{value:"CZK",label:"Czech Koruna"},{value:"ILS",label:"Israeli New Shekel"},{value:"PHP",label:"Philippine Peso"},{value:"AED",label:"United Arab Emirates Dirham"},{value:"COP",label:"Colombian Peso"},{value:"SAR",label:"Saudi Riyal"},{value:"MYR",label:"Malaysian Ringgit"},{value:"RON",label:"Romanian Leu"}],currency=l.enum(["USD","EUR","GBP","JPY","AUD","CAD","CHF","CNY","SEK","NZD","MXN","SGD","HKD","NOK","KRW","TRY","RUB","INR","BRL","ZAR","DKK","PLN","THB","IDR","HUF","CZK","ILS","PHP","AED","COP","SAR","MYR","RON"]).openapi({description:"The currency code for the transaction."});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{z as e}from"@hono/zod-openapi";export const ErrorSchema=e.object({status:e.number().openapi({example:404,description:"The HTTP status code"}),message:e.string().openapi({example:"Not found",description:"The error message"})});
|
package/src/schemas/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export*from"../features/analytics/analytics.schema";export*from"../features/access/access.schema";export*from"../features/cart/cart.schema";export*from"./error.schema";export*from"../core/auth/headers.schema";export*from"../features/integration/integration.schema";export*from"../features/product/product.schema";export*from"../core/auth/user.schema";export*from"./pagination.schema";export*from"../features/order/order.schema";export*from"../features/organization/organization.schema";export*from"../features/shipping-method/shipping-method.schema";export*from"../features/product-category/product-category.schema";export*from"../features/shipping-method/shipping-zone.schema";export*from"../features/product/product-modifier.schema";export*from"../features/organization/organization-configuration.schema";export*from"./number.schema";export*from"../features/manufacturer/manufacturer.schema";export*from"./locales.schema";export*from"../features/organization/legal-entity.schema";export*from"../features/order/fulfilment.schema";export*from"../features/file/file.schema";export*from"../features/order/recipient.schema";export*from"./currency.schema";export*from"../core/auth/auth.schema";export*from"./address.schema";export*from"./params.schema";export*from"../features/location/location.schema";export*from"../features/payment/payment.schema";export*from"../features/reservation/reservation.schema";export*from"../features/customer/customer.schema";
|