@hed-hog/faq 0.0.5 → 0.0.7
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/dist/faq.controller.d.ts +3 -3
- package/dist/faq.service.d.ts +3 -3
- package/dist/faq.service.d.ts.map +1 -1
- package/dist/faq.service.js +43 -12
- package/dist/faq.service.js.map +1 -1
- package/package.json +1 -1
- package/src/faq.service.ts +49 -12
package/dist/faq.controller.d.ts
CHANGED
|
@@ -27,8 +27,8 @@ export declare class FAQController {
|
|
|
27
27
|
} & {
|
|
28
28
|
id: number;
|
|
29
29
|
created_at: Date;
|
|
30
|
-
updated_at: Date;
|
|
31
30
|
locale_id: number;
|
|
31
|
+
updated_at: Date;
|
|
32
32
|
faq_id: number;
|
|
33
33
|
question: string;
|
|
34
34
|
answer: string;
|
|
@@ -49,8 +49,8 @@ export declare class FAQController {
|
|
|
49
49
|
} & {
|
|
50
50
|
id: number;
|
|
51
51
|
created_at: Date;
|
|
52
|
-
updated_at: Date;
|
|
53
52
|
locale_id: number;
|
|
53
|
+
updated_at: Date;
|
|
54
54
|
faq_id: number;
|
|
55
55
|
question: string;
|
|
56
56
|
answer: string;
|
|
@@ -71,8 +71,8 @@ export declare class FAQController {
|
|
|
71
71
|
} & {
|
|
72
72
|
id: number;
|
|
73
73
|
created_at: Date;
|
|
74
|
-
updated_at: Date;
|
|
75
74
|
locale_id: number;
|
|
75
|
+
updated_at: Date;
|
|
76
76
|
faq_id: number;
|
|
77
77
|
question: string;
|
|
78
78
|
answer: string;
|
package/dist/faq.service.d.ts
CHANGED
|
@@ -29,8 +29,8 @@ export declare class FAQService {
|
|
|
29
29
|
} & {
|
|
30
30
|
id: number;
|
|
31
31
|
created_at: Date;
|
|
32
|
-
updated_at: Date;
|
|
33
32
|
locale_id: number;
|
|
33
|
+
updated_at: Date;
|
|
34
34
|
faq_id: number;
|
|
35
35
|
question: string;
|
|
36
36
|
answer: string;
|
|
@@ -51,8 +51,8 @@ export declare class FAQService {
|
|
|
51
51
|
} & {
|
|
52
52
|
id: number;
|
|
53
53
|
created_at: Date;
|
|
54
|
-
updated_at: Date;
|
|
55
54
|
locale_id: number;
|
|
55
|
+
updated_at: Date;
|
|
56
56
|
faq_id: number;
|
|
57
57
|
question: string;
|
|
58
58
|
answer: string;
|
|
@@ -73,8 +73,8 @@ export declare class FAQService {
|
|
|
73
73
|
} & {
|
|
74
74
|
id: number;
|
|
75
75
|
created_at: Date;
|
|
76
|
-
updated_at: Date;
|
|
77
76
|
locale_id: number;
|
|
77
|
+
updated_at: Date;
|
|
78
78
|
faq_id: number;
|
|
79
79
|
question: string;
|
|
80
80
|
answer: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faq.service.d.ts","sourceRoot":"","sources":["../src/faq.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,qBACa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,MAAM,EAAE,aAAa,EAErB,aAAa,EAAE,aAAa;IAGzC,IAAI,CAAC,gBAAgB,KAAA,EAAE,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"faq.service.d.ts","sourceRoot":"","sources":["../src/faq.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,qBACa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,MAAM,EAAE,aAAa,EAErB,aAAa,EAAE,aAAa;IAGzC,IAAI,CAAC,gBAAgB,KAAA,EAAE,MAAM,EAAE,MAAM;;;;;;;;;IAgGrC,QAAQ;;;IAOR,MAAM,CAAC,IAAI,EAAE,MAAM;;sBAoDa,MAAM;oBAAU,MAAM;;;;;;;;;;;;;;;;;;;IAzBtD,OAAO,CAAC,EAAE,EAAE,MAAM;;sBAyBc,MAAM;oBAAU,MAAM;;;;;;;;;;;;;;;;;;;IAQtD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;;sBARR,MAAM;oBAAU,MAAM;;;;;;;;;;;;;;;;;;;IAgDtD,MAAM,CAAC,EAAE,EAAE,MAAM;;;;CAqBxB"}
|
package/dist/faq.service.js
CHANGED
|
@@ -37,7 +37,13 @@ let FAQService = class FAQService {
|
|
|
37
37
|
f.id AS faq_id,
|
|
38
38
|
fl.locale_id,
|
|
39
39
|
fl.question,
|
|
40
|
-
fl.answer
|
|
40
|
+
fl.answer,
|
|
41
|
+
(
|
|
42
|
+
SELECT json_agg(json_build_object('code', l.code, 'name', l.name))
|
|
43
|
+
FROM faq_locale fl2
|
|
44
|
+
JOIN locale l ON l.id = fl2.locale_id
|
|
45
|
+
WHERE fl2.faq_id = f.id AND l.enabled = true
|
|
46
|
+
) AS available_locales
|
|
41
47
|
FROM faq AS f
|
|
42
48
|
JOIN faq_locale AS fl
|
|
43
49
|
ON fl.faq_id = f.id
|
|
@@ -55,7 +61,13 @@ let FAQService = class FAQService {
|
|
|
55
61
|
f.id AS faq_id,
|
|
56
62
|
fl.locale_id,
|
|
57
63
|
fl.question,
|
|
58
|
-
fl.answer
|
|
64
|
+
fl.answer,
|
|
65
|
+
(
|
|
66
|
+
SELECT json_agg(json_build_object('code', l.code, 'name', l.name))
|
|
67
|
+
FROM faq_locale fl2
|
|
68
|
+
JOIN locale l ON l.id = fl2.locale_id
|
|
69
|
+
WHERE fl2.faq_id = f.id AND l.enabled = true
|
|
70
|
+
) AS available_locales
|
|
59
71
|
FROM faq AS f
|
|
60
72
|
JOIN faq_locale AS fl
|
|
61
73
|
ON fl.faq_id = f.id
|
|
@@ -73,13 +85,16 @@ let FAQService = class FAQService {
|
|
|
73
85
|
})),
|
|
74
86
|
});
|
|
75
87
|
const [rows, total] = await Promise.all([rowsQuery, countQuery]);
|
|
88
|
+
// Map to ensure available_locales is properly returned
|
|
89
|
+
const mappedRows = rows.map((row) => (Object.assign(Object.assign({}, row), { available_locales: row.available_locales || [] })));
|
|
90
|
+
console.log({ mappedRows });
|
|
76
91
|
const pageSize = paginationParams.take;
|
|
77
92
|
const page = Math.floor(paginationParams.skip / pageSize) + 1;
|
|
78
93
|
const lastPage = Math.max(1, Math.ceil(total / pageSize));
|
|
79
94
|
const prev = page > 1 ? page - 1 : null;
|
|
80
95
|
const next = page < lastPage ? page + 1 : null;
|
|
81
96
|
return {
|
|
82
|
-
data:
|
|
97
|
+
data: mappedRows,
|
|
83
98
|
total,
|
|
84
99
|
page,
|
|
85
100
|
pageSize,
|
|
@@ -145,15 +160,31 @@ let FAQService = class FAQService {
|
|
|
145
160
|
if (locale) {
|
|
146
161
|
await Promise.all(Object.entries(locale).map(async ([localeCode, localeData]) => {
|
|
147
162
|
const localeRecord = await this.localeService.getByCode(localeCode);
|
|
148
|
-
await this.prisma
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
163
|
+
const existing = await this.prisma.faq_locale.findFirst({
|
|
164
|
+
where: {
|
|
165
|
+
faq_id: id,
|
|
166
|
+
locale_id: localeRecord.id,
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
if (existing) {
|
|
170
|
+
await this.prisma.faq_locale.update({
|
|
171
|
+
where: { id: existing.id },
|
|
172
|
+
data: {
|
|
173
|
+
question: localeData.question,
|
|
174
|
+
answer: localeData.answer,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
await this.prisma.faq_locale.create({
|
|
180
|
+
data: {
|
|
181
|
+
faq_id: id,
|
|
182
|
+
locale_id: localeRecord.id,
|
|
183
|
+
question: localeData.question,
|
|
184
|
+
answer: localeData.answer,
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
}
|
|
157
188
|
}));
|
|
158
189
|
}
|
|
159
190
|
return this.getById(id);
|
package/dist/faq.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faq.service.js","sourceRoot":"","sources":["../src/faq.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,oDAAoD;AACpD,2CAAgE;AAIzD,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YACmB,MAAqB,EAErB,aAA4B;QAF5B,WAAM,GAAN,MAAM,CAAe;QAErB,kBAAa,GAAb,aAAa,CAAe;IAC5C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAc;;QACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;QAEjC,MAAM,SAAS,GAAG,CAAC,MAAA,gBAAgB,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;QAE5C,MAAM,SAAS,GAAG,SAAS;YACzB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA
|
|
1
|
+
{"version":3,"file":"faq.service.js","sourceRoot":"","sources":["../src/faq.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/faq.service.ts
CHANGED
|
@@ -28,7 +28,13 @@ export class FAQService {
|
|
|
28
28
|
f.id AS faq_id,
|
|
29
29
|
fl.locale_id,
|
|
30
30
|
fl.question,
|
|
31
|
-
fl.answer
|
|
31
|
+
fl.answer,
|
|
32
|
+
(
|
|
33
|
+
SELECT json_agg(json_build_object('code', l.code, 'name', l.name))
|
|
34
|
+
FROM faq_locale fl2
|
|
35
|
+
JOIN locale l ON l.id = fl2.locale_id
|
|
36
|
+
WHERE fl2.faq_id = f.id AND l.enabled = true
|
|
37
|
+
) AS available_locales
|
|
32
38
|
FROM faq AS f
|
|
33
39
|
JOIN faq_locale AS fl
|
|
34
40
|
ON fl.faq_id = f.id
|
|
@@ -46,7 +52,13 @@ export class FAQService {
|
|
|
46
52
|
f.id AS faq_id,
|
|
47
53
|
fl.locale_id,
|
|
48
54
|
fl.question,
|
|
49
|
-
fl.answer
|
|
55
|
+
fl.answer,
|
|
56
|
+
(
|
|
57
|
+
SELECT json_agg(json_build_object('code', l.code, 'name', l.name))
|
|
58
|
+
FROM faq_locale fl2
|
|
59
|
+
JOIN locale l ON l.id = fl2.locale_id
|
|
60
|
+
WHERE fl2.faq_id = f.id AND l.enabled = true
|
|
61
|
+
) AS available_locales
|
|
50
62
|
FROM faq AS f
|
|
51
63
|
JOIN faq_locale AS fl
|
|
52
64
|
ON fl.faq_id = f.id
|
|
@@ -70,6 +82,14 @@ export class FAQService {
|
|
|
70
82
|
|
|
71
83
|
const [rows, total] = await Promise.all([rowsQuery, countQuery]);
|
|
72
84
|
|
|
85
|
+
// Map to ensure available_locales is properly returned
|
|
86
|
+
const mappedRows = (rows as any[]).map((row) => ({
|
|
87
|
+
...row,
|
|
88
|
+
available_locales: row.available_locales || [],
|
|
89
|
+
}));
|
|
90
|
+
|
|
91
|
+
console.log({ mappedRows })
|
|
92
|
+
|
|
73
93
|
const pageSize = paginationParams.take;
|
|
74
94
|
const page = Math.floor(paginationParams.skip / pageSize) + 1;
|
|
75
95
|
const lastPage = Math.max(1, Math.ceil(total / pageSize));
|
|
@@ -77,7 +97,7 @@ export class FAQService {
|
|
|
77
97
|
const next = page < lastPage ? page + 1 : null;
|
|
78
98
|
|
|
79
99
|
return {
|
|
80
|
-
data:
|
|
100
|
+
data: mappedRows,
|
|
81
101
|
total,
|
|
82
102
|
page,
|
|
83
103
|
pageSize,
|
|
@@ -161,15 +181,32 @@ export class FAQService {
|
|
|
161
181
|
await Promise.all(
|
|
162
182
|
Object.entries(locale).map(async ([localeCode, localeData]) => {
|
|
163
183
|
const localeRecord = await this.localeService.getByCode(localeCode);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
184
|
+
|
|
185
|
+
const existing = await this.prisma.faq_locale.findFirst({
|
|
186
|
+
where: {
|
|
187
|
+
faq_id: id,
|
|
188
|
+
locale_id: localeRecord.id,
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
if (existing) {
|
|
193
|
+
await this.prisma.faq_locale.update({
|
|
194
|
+
where: { id: existing.id },
|
|
195
|
+
data: {
|
|
196
|
+
question: localeData.question,
|
|
197
|
+
answer: localeData.answer,
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
} else {
|
|
201
|
+
await this.prisma.faq_locale.create({
|
|
202
|
+
data: {
|
|
203
|
+
faq_id: id,
|
|
204
|
+
locale_id: localeRecord.id,
|
|
205
|
+
question: localeData.question,
|
|
206
|
+
answer: localeData.answer,
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
}
|
|
173
210
|
})
|
|
174
211
|
);
|
|
175
212
|
}
|