channel-partner.js
2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"use strict";
/**
* channel-partner controller
*/
const { createCoreController } = require("@strapi/strapi").factories;
module.exports = createCoreController(
"api::channel-partner.channel-partner",
({ strapi: Strapi }) => ({
async create(ctx) {
// const currentChannelPartner = ctx.state.user;
const reraNumber = ctx.request.body?.data?.reraNumber;
if (!reraNumber) {
return ctx.bad(`Please specify your rera number.`);
}
// 1. check if the channel partner already exist
const existingChannelPartner = await strapi.entityService.findMany(
"api::channel-partner.channel-partner",
{
filters: { reraNumber: reraNumber },
}
);
if (existingChannelPartner && existingChannelPartner.length !== 0) {
return ctx.badRequest(
`Channel Partner Already Exist with the Given rera number ${reraNumber}`
);
}
try {
const spertoCPData = await strapi
.service("api::channel-partner.channel-partner")
.sendCPToSperto(ctx.request.body.data);
ctx.request.body.data.httpRequestHeaders = JSON.stringify(
spertoCPData.headers
);
ctx.request.body.data.httpRequestMethod = spertoCPData.config.method;
ctx.request.body.data.httpRequestUrl = spertoCPData.config.url;
ctx.request.body.data.httpsRequestBody = spertoCPData.config.data;
ctx.request.body.data.httpResposneBody = JSON.stringify(
spertoCPData.data
);
ctx.request.body.data.thirdPartyApiError=false;
} catch (error) {
ctx.request.body.data.httpRequestHeaders = JSON.stringify(
error.config.headers
);
ctx.request.body.data.httpRequestMethod = error.config.method;
ctx.request.body.data.httpRequestUrl = error.config.url;
ctx.request.body.data.httpsRequestBody = error.config.data;
ctx.request.body.data.httpResposneBody = JSON.stringify(error.message);
ctx.request.body.data.thirdPartyApiError=true;
}
return await super.create(ctx);
},
})
);