Connect Meshkee backend, blog and shared account session
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import {sameOrigin} from '../../../lib/meshkee/session';
|
||||
import { tenantApi } from '../../../lib/meshkee/api';
|
||||
import { validateContact } from '../../../lib/meshkee/contact';
|
||||
export async function POST(request:Request) {
|
||||
if(!sameOrigin(request))return Response.json({message:'درخواست نامعتبر است.'},{status:403});
|
||||
if(!request.headers.get('content-type')?.includes('application/json'))return Response.json({message:'فرمت درخواست نامعتبر است.'},{status:415});
|
||||
const raw=await request.text();
|
||||
if(raw.length>20000)return Response.json({message:'متن پیام بیش از حد طولانی است.'},{status:413});
|
||||
let input;
|
||||
try{input=JSON.parse(raw)}catch{return Response.json({message:'درخواست نامعتبر است.'},{status:400})}
|
||||
if(!input||typeof input!=='object'||Array.isArray(input))return Response.json({message:'درخواست نامعتبر است.'},{status:400});
|
||||
const {data,errors}=validateContact(input);
|
||||
if(Object.keys(errors).length)return Response.json({message:'اطلاعات فرم را بررسی کنید.',errors},{status:400});
|
||||
try {
|
||||
await tenantApi('/contact-submissions',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(Object.fromEntries(Object.entries(data).filter(([,value])=>value)))});
|
||||
return Response.json({message:'پیام شما با موفقیت ثبت شد. از ارتباط شما سپاسگزاریم.'},{status:201});
|
||||
}catch{return Response.json({message:'پیام ارسال نشد. لطفاً دوباره تلاش کنید یا با ما تماس بگیرید.'},{status:502})}
|
||||
}
|
||||
Reference in New Issue
Block a user