@statezero/core 0.2.22 → 0.2.23
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/actions/backend1/django_app/calculate-hash.d.ts +57 -0
- package/dist/actions/backend1/django_app/calculate-hash.js +80 -0
- package/dist/actions/backend1/django_app/calculate-hash.schema.json +148 -0
- package/dist/actions/backend1/django_app/get-current-username.d.ts +29 -0
- package/dist/actions/backend1/django_app/get-current-username.js +65 -0
- package/dist/actions/backend1/django_app/get-current-username.schema.json +47 -0
- package/dist/actions/backend1/django_app/get-server-status.d.ts +38 -0
- package/dist/actions/backend1/django_app/get-server-status.js +68 -0
- package/dist/actions/backend1/django_app/get-server-status.schema.json +93 -0
- package/dist/actions/backend1/django_app/get-user-info.d.ts +44 -0
- package/dist/actions/backend1/django_app/get-user-info.js +70 -0
- package/dist/actions/backend1/django_app/get-user-info.schema.json +127 -0
- package/dist/actions/backend1/django_app/index.d.ts +1 -0
- package/dist/actions/backend1/django_app/index.js +6 -0
- package/dist/actions/backend1/django_app/process-data.d.ts +51 -0
- package/dist/actions/backend1/django_app/process-data.js +78 -0
- package/dist/actions/backend1/django_app/process-data.schema.json +117 -0
- package/dist/actions/backend1/django_app/send-notification.d.ts +55 -0
- package/dist/actions/backend1/django_app/send-notification.js +81 -0
- package/dist/actions/backend1/django_app/send-notification.schema.json +175 -0
- package/dist/actions/backend1/index.d.ts +1 -0
- package/dist/actions/backend1/index.js +1 -0
- package/dist/actions/default/django_app/calculate-hash.d.ts +57 -0
- package/dist/actions/default/django_app/calculate-hash.js +80 -0
- package/dist/actions/default/django_app/calculate-hash.schema.json +148 -0
- package/dist/actions/default/django_app/get-current-username.d.ts +29 -0
- package/dist/actions/default/django_app/get-current-username.js +65 -0
- package/dist/actions/default/django_app/get-current-username.schema.json +47 -0
- package/dist/actions/default/django_app/get-server-status.d.ts +38 -0
- package/dist/actions/default/django_app/get-server-status.js +68 -0
- package/dist/actions/default/django_app/get-server-status.schema.json +93 -0
- package/dist/actions/default/django_app/get-user-info.d.ts +44 -0
- package/dist/actions/default/django_app/get-user-info.js +70 -0
- package/dist/actions/default/django_app/get-user-info.schema.json +127 -0
- package/dist/actions/default/django_app/index.d.ts +1 -0
- package/dist/actions/default/django_app/index.js +6 -0
- package/dist/actions/default/django_app/process-data.d.ts +51 -0
- package/dist/actions/default/django_app/process-data.js +78 -0
- package/dist/actions/default/django_app/process-data.schema.json +117 -0
- package/dist/actions/default/django_app/send-notification.d.ts +55 -0
- package/dist/actions/default/django_app/send-notification.js +81 -0
- package/dist/actions/default/django_app/send-notification.schema.json +175 -0
- package/dist/actions/default/index.d.ts +1 -0
- package/dist/actions/default/index.js +1 -0
- package/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.js +5 -0
- package/dist/flavours/django/dates.js +4 -1
- package/dist/flavours/django/serializers.js +8 -4
- package/dist/models/backend1/django_app/comprehensivemodel.d.ts +894 -0
- package/dist/models/backend1/django_app/comprehensivemodel.js +71 -0
- package/dist/models/backend1/django_app/comprehensivemodel.schema.json +870 -0
- package/dist/models/backend1/django_app/custompkmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/custompkmodel.js +69 -0
- package/dist/models/backend1/django_app/custompkmodel.schema.json +71 -0
- package/dist/models/backend1/django_app/dailyrate.d.ts +230 -0
- package/dist/models/backend1/django_app/dailyrate.js +71 -0
- package/dist/models/backend1/django_app/dailyrate.schema.json +212 -0
- package/dist/models/backend1/django_app/deepmodellevel1.d.ts +140 -0
- package/dist/models/backend1/django_app/deepmodellevel1.js +72 -0
- package/dist/models/backend1/django_app/deepmodellevel1.schema.json +114 -0
- package/dist/models/backend1/django_app/deepmodellevel2.d.ts +118 -0
- package/dist/models/backend1/django_app/deepmodellevel2.js +71 -0
- package/dist/models/backend1/django_app/deepmodellevel2.schema.json +92 -0
- package/dist/models/backend1/django_app/deepmodellevel3.d.ts +92 -0
- package/dist/models/backend1/django_app/deepmodellevel3.js +69 -0
- package/dist/models/backend1/django_app/deepmodellevel3.schema.json +69 -0
- package/dist/models/backend1/django_app/dummymodel.d.ts +134 -0
- package/dist/models/backend1/django_app/dummymodel.js +71 -0
- package/dist/models/backend1/django_app/dummymodel.schema.json +109 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.js +69 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.schema.json +69 -0
- package/dist/models/backend1/django_app/filetest.d.ts +140 -0
- package/dist/models/backend1/django_app/filetest.js +69 -0
- package/dist/models/backend1/django_app/filetest.schema.json +111 -0
- package/dist/models/backend1/django_app/index.d.ts +1 -0
- package/dist/models/backend1/django_app/index.js +18 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.d.ts +118 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.js +71 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.schema.json +93 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.d.ts +134 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.js +71 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +111 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.js +69 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.schema.json +71 -0
- package/dist/models/backend1/django_app/order.d.ts +220 -0
- package/dist/models/backend1/django_app/order.js +71 -0
- package/dist/models/backend1/django_app/order.schema.json +203 -0
- package/dist/models/backend1/django_app/orderitem.d.ts +172 -0
- package/dist/models/backend1/django_app/orderitem.js +72 -0
- package/dist/models/backend1/django_app/orderitem.schema.json +149 -0
- package/dist/models/backend1/django_app/product.d.ts +254 -0
- package/dist/models/backend1/django_app/product.js +71 -0
- package/dist/models/backend1/django_app/product.schema.json +277 -0
- package/dist/models/backend1/django_app/productcategory.d.ts +92 -0
- package/dist/models/backend1/django_app/productcategory.js +69 -0
- package/dist/models/backend1/django_app/productcategory.schema.json +70 -0
- package/dist/models/backend1/django_app/rateplan.d.ts +92 -0
- package/dist/models/backend1/django_app/rateplan.js +69 -0
- package/dist/models/backend1/django_app/rateplan.schema.json +70 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.js +69 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
- package/dist/models/backend1/fileobject.d.ts +4 -0
- package/dist/models/backend1/fileobject.js +9 -0
- package/dist/models/backend1/index.d.ts +2 -0
- package/dist/models/backend1/index.js +2 -0
- package/dist/models/default/django_app/comprehensivemodel.d.ts +894 -0
- package/dist/models/default/django_app/comprehensivemodel.js +71 -0
- package/dist/models/default/django_app/comprehensivemodel.schema.json +870 -0
- package/dist/models/default/django_app/custompkmodel.d.ts +92 -0
- package/dist/models/default/django_app/custompkmodel.js +69 -0
- package/dist/models/default/django_app/custompkmodel.schema.json +71 -0
- package/dist/models/default/django_app/dailyrate.d.ts +230 -0
- package/dist/models/default/django_app/dailyrate.js +71 -0
- package/dist/models/default/django_app/dailyrate.schema.json +212 -0
- package/dist/models/default/django_app/deepmodellevel1.d.ts +128 -0
- package/dist/models/default/django_app/deepmodellevel1.js +72 -0
- package/dist/models/default/django_app/deepmodellevel1.schema.json +102 -0
- package/dist/models/default/django_app/deepmodellevel2.d.ts +106 -0
- package/dist/models/default/django_app/deepmodellevel2.js +71 -0
- package/dist/models/default/django_app/deepmodellevel2.schema.json +80 -0
- package/dist/models/default/django_app/deepmodellevel3.d.ts +80 -0
- package/dist/models/default/django_app/deepmodellevel3.js +69 -0
- package/dist/models/default/django_app/deepmodellevel3.schema.json +57 -0
- package/dist/models/default/django_app/dummymodel.d.ts +122 -0
- package/dist/models/default/django_app/dummymodel.js +71 -0
- package/dist/models/default/django_app/dummymodel.schema.json +97 -0
- package/dist/models/default/django_app/dummyrelatedmodel.d.ts +80 -0
- package/dist/models/default/django_app/dummyrelatedmodel.js +69 -0
- package/dist/models/default/django_app/dummyrelatedmodel.schema.json +57 -0
- package/dist/models/default/django_app/filetest.d.ts +128 -0
- package/dist/models/default/django_app/filetest.js +69 -0
- package/dist/models/default/django_app/filetest.schema.json +99 -0
- package/dist/models/default/django_app/index.d.ts +1 -0
- package/dist/models/default/django_app/index.js +18 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.d.ts +118 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.js +71 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.schema.json +93 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.d.ts +134 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.js +71 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +111 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.d.ts +92 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.js +69 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.schema.json +71 -0
- package/dist/models/default/django_app/order.d.ts +220 -0
- package/dist/models/default/django_app/order.js +71 -0
- package/dist/models/default/django_app/order.schema.json +203 -0
- package/dist/models/default/django_app/orderitem.d.ts +172 -0
- package/dist/models/default/django_app/orderitem.js +72 -0
- package/dist/models/default/django_app/orderitem.schema.json +149 -0
- package/dist/models/default/django_app/product.d.ts +254 -0
- package/dist/models/default/django_app/product.js +71 -0
- package/dist/models/default/django_app/product.schema.json +277 -0
- package/dist/models/default/django_app/productcategory.d.ts +92 -0
- package/dist/models/default/django_app/productcategory.js +69 -0
- package/dist/models/default/django_app/productcategory.schema.json +70 -0
- package/dist/models/default/django_app/rateplan.d.ts +92 -0
- package/dist/models/default/django_app/rateplan.js +69 -0
- package/dist/models/default/django_app/rateplan.schema.json +70 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.js +69 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
- package/dist/models/default/fileobject.d.ts +4 -0
- package/dist/models/default/fileobject.js +9 -0
- package/dist/models/default/index.d.ts +2 -0
- package/dist/models/default/index.js +2 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Send notifications to multiple recipients
|
|
3
|
+
*
|
|
4
|
+
* @param string message - Notification message to send
|
|
5
|
+
* @param any[] recipients - List of email addresses to notify
|
|
6
|
+
* @param 'low' | 'high' priority - Notification priority level
|
|
7
|
+
* @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
|
|
8
|
+
* @returns {Promise<Object>} A promise that resolves with the action's result.
|
|
9
|
+
*/
|
|
10
|
+
export function sendNotification(message: any, recipients: any, priority?: string, axiosOverrides?: Object): Promise<Object>;
|
|
11
|
+
export namespace sendNotification {
|
|
12
|
+
let actionName: string;
|
|
13
|
+
let title: string;
|
|
14
|
+
let app: string;
|
|
15
|
+
let permissions: string[];
|
|
16
|
+
let configKey: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Zod schema for the input of sendNotification.
|
|
20
|
+
* NOTE: This is an object schema for validating the data payload.
|
|
21
|
+
*/
|
|
22
|
+
export const sendNotificationInputSchema: z.ZodObject<{
|
|
23
|
+
message: z.ZodString;
|
|
24
|
+
recipients: z.ZodArray<z.ZodAny, "many">;
|
|
25
|
+
priority: z.ZodDefault<z.ZodOptional<z.ZodEnum<["low", "high"]>>>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
message: string;
|
|
28
|
+
priority: "low" | "high";
|
|
29
|
+
recipients: any[];
|
|
30
|
+
}, {
|
|
31
|
+
message: string;
|
|
32
|
+
recipients: any[];
|
|
33
|
+
priority?: "low" | "high" | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Zod schema for the response of sendNotification.
|
|
37
|
+
*/
|
|
38
|
+
export const sendNotificationResponseSchema: z.ZodObject<{
|
|
39
|
+
success: z.ZodBoolean;
|
|
40
|
+
message_id: z.ZodString;
|
|
41
|
+
sent_to: z.ZodNumber;
|
|
42
|
+
queued_at: z.ZodString;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
success: boolean;
|
|
45
|
+
message_id: string;
|
|
46
|
+
sent_to: number;
|
|
47
|
+
queued_at: string;
|
|
48
|
+
}, {
|
|
49
|
+
success: boolean;
|
|
50
|
+
message_id: string;
|
|
51
|
+
sent_to: number;
|
|
52
|
+
queued_at: string;
|
|
53
|
+
}>;
|
|
54
|
+
export default sendNotification;
|
|
55
|
+
import { z } from 'zod';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated. Do not make direct changes to the file.
|
|
3
|
+
* Action: Send Notification
|
|
4
|
+
* App: django_app
|
|
5
|
+
*/
|
|
6
|
+
import axios from 'axios';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { configInstance, parseStateZeroError, serializeActionPayload } from '../../../../src';
|
|
9
|
+
import actionSchema from './send-notification.schema.json' assert { type: 'json' };
|
|
10
|
+
/**
|
|
11
|
+
* Zod schema for the input of sendNotification.
|
|
12
|
+
* NOTE: This is an object schema for validating the data payload.
|
|
13
|
+
*/
|
|
14
|
+
export const sendNotificationInputSchema = z.object({ message: z.string().max(500),
|
|
15
|
+
recipients: z.array(z.any()),
|
|
16
|
+
priority: z.enum(["low", "high"]).optional().default("low") });
|
|
17
|
+
/**
|
|
18
|
+
* Zod schema for the response of sendNotification.
|
|
19
|
+
*/
|
|
20
|
+
export const sendNotificationResponseSchema = z.object({ success: z.boolean(),
|
|
21
|
+
message_id: z.string(),
|
|
22
|
+
sent_to: z.number().int(),
|
|
23
|
+
queued_at: z.string().datetime({ message: "Invalid ISO 8601 datetime string" }) });
|
|
24
|
+
/**
|
|
25
|
+
* Send notifications to multiple recipients
|
|
26
|
+
*
|
|
27
|
+
* @param string message - Notification message to send
|
|
28
|
+
* @param any[] recipients - List of email addresses to notify
|
|
29
|
+
* @param 'low' | 'high' priority - Notification priority level
|
|
30
|
+
* @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
|
|
31
|
+
* @returns {Promise<Object>} A promise that resolves with the action's result.
|
|
32
|
+
*/
|
|
33
|
+
export async function sendNotification(message, recipients, priority = "low", axiosOverrides = {}) {
|
|
34
|
+
// Construct the data payload from the function arguments
|
|
35
|
+
const rawPayload = {
|
|
36
|
+
message,
|
|
37
|
+
recipients,
|
|
38
|
+
priority
|
|
39
|
+
};
|
|
40
|
+
// Serialize payload - handles model instances (extracts PK), files, dates, etc.
|
|
41
|
+
const payload = serializeActionPayload(rawPayload, actionSchema.input_properties);
|
|
42
|
+
const config = configInstance.getConfig();
|
|
43
|
+
const backend = config.backendConfigs['default'];
|
|
44
|
+
if (!backend) {
|
|
45
|
+
throw new Error(`No backend configuration found for key: default`);
|
|
46
|
+
}
|
|
47
|
+
const baseUrl = backend.API_URL.replace(/\/+$/, '');
|
|
48
|
+
const actionUrl = `${baseUrl}/actions/send_notification/`;
|
|
49
|
+
const headers = backend.getAuthHeaders ? backend.getAuthHeaders() : {};
|
|
50
|
+
try {
|
|
51
|
+
const response = await axios.post(actionUrl, payload, {
|
|
52
|
+
headers: { 'Content-Type': 'application/json', ...headers },
|
|
53
|
+
...axiosOverrides,
|
|
54
|
+
});
|
|
55
|
+
return sendNotificationResponseSchema.parse(response.data);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error instanceof z.ZodError) {
|
|
59
|
+
throw new Error(`Send Notification failed: Invalid response from server. Details: ${error.message}`);
|
|
60
|
+
}
|
|
61
|
+
if (error.response && error.response.data) {
|
|
62
|
+
const parsedError = parseStateZeroError(error.response.data);
|
|
63
|
+
if (Error.captureStackTrace) {
|
|
64
|
+
Error.captureStackTrace(parsedError, sendNotification);
|
|
65
|
+
}
|
|
66
|
+
throw parsedError;
|
|
67
|
+
}
|
|
68
|
+
else if (error.request) {
|
|
69
|
+
throw new Error(`Send Notification failed: No response received from server.`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error(`Send Notification failed: ${error.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export default sendNotification;
|
|
77
|
+
sendNotification.actionName = 'send_notification';
|
|
78
|
+
sendNotification.title = 'Send Notification';
|
|
79
|
+
sendNotification.app = 'django_app';
|
|
80
|
+
sendNotification.permissions = ['CanSendNotifications'];
|
|
81
|
+
sendNotification.configKey = 'default';
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
{
|
|
2
|
+
"action_name": "send_notification",
|
|
3
|
+
"app": "django_app",
|
|
4
|
+
"title": "Send Notification",
|
|
5
|
+
"docstring": "Send notifications to multiple recipients",
|
|
6
|
+
"class_name": "SendNotification",
|
|
7
|
+
"input_properties": {
|
|
8
|
+
"message": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"title": "Message",
|
|
11
|
+
"required": true,
|
|
12
|
+
"description": "Notification message to send",
|
|
13
|
+
"nullable": false,
|
|
14
|
+
"format": null,
|
|
15
|
+
"max_length": 500,
|
|
16
|
+
"choices": null,
|
|
17
|
+
"default": null,
|
|
18
|
+
"validators": [],
|
|
19
|
+
"max_digits": null,
|
|
20
|
+
"decimal_places": null,
|
|
21
|
+
"read_only": false,
|
|
22
|
+
"ref": null
|
|
23
|
+
},
|
|
24
|
+
"recipients": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"title": "Recipients",
|
|
27
|
+
"required": true,
|
|
28
|
+
"description": "List of email addresses to notify",
|
|
29
|
+
"nullable": false,
|
|
30
|
+
"format": null,
|
|
31
|
+
"max_length": null,
|
|
32
|
+
"choices": null,
|
|
33
|
+
"default": null,
|
|
34
|
+
"validators": [],
|
|
35
|
+
"max_digits": null,
|
|
36
|
+
"decimal_places": null,
|
|
37
|
+
"read_only": false,
|
|
38
|
+
"ref": null
|
|
39
|
+
},
|
|
40
|
+
"priority": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"title": "Priority",
|
|
43
|
+
"required": false,
|
|
44
|
+
"description": "Notification priority level",
|
|
45
|
+
"nullable": false,
|
|
46
|
+
"format": null,
|
|
47
|
+
"max_length": null,
|
|
48
|
+
"choices": {
|
|
49
|
+
"low": "Low",
|
|
50
|
+
"high": "High"
|
|
51
|
+
},
|
|
52
|
+
"default": "low",
|
|
53
|
+
"validators": [],
|
|
54
|
+
"max_digits": null,
|
|
55
|
+
"decimal_places": null,
|
|
56
|
+
"read_only": false,
|
|
57
|
+
"ref": null
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"response_properties": {
|
|
61
|
+
"success": {
|
|
62
|
+
"type": "boolean",
|
|
63
|
+
"title": "Success",
|
|
64
|
+
"required": true,
|
|
65
|
+
"description": null,
|
|
66
|
+
"nullable": false,
|
|
67
|
+
"format": null,
|
|
68
|
+
"max_length": null,
|
|
69
|
+
"choices": null,
|
|
70
|
+
"default": null,
|
|
71
|
+
"validators": [],
|
|
72
|
+
"max_digits": null,
|
|
73
|
+
"decimal_places": null,
|
|
74
|
+
"read_only": false,
|
|
75
|
+
"ref": null
|
|
76
|
+
},
|
|
77
|
+
"message_id": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"title": "Message id",
|
|
80
|
+
"required": true,
|
|
81
|
+
"description": null,
|
|
82
|
+
"nullable": false,
|
|
83
|
+
"format": null,
|
|
84
|
+
"max_length": null,
|
|
85
|
+
"choices": null,
|
|
86
|
+
"default": null,
|
|
87
|
+
"validators": [],
|
|
88
|
+
"max_digits": null,
|
|
89
|
+
"decimal_places": null,
|
|
90
|
+
"read_only": false,
|
|
91
|
+
"ref": null
|
|
92
|
+
},
|
|
93
|
+
"sent_to": {
|
|
94
|
+
"type": "integer",
|
|
95
|
+
"title": "Sent to",
|
|
96
|
+
"required": true,
|
|
97
|
+
"description": null,
|
|
98
|
+
"nullable": false,
|
|
99
|
+
"format": null,
|
|
100
|
+
"max_length": null,
|
|
101
|
+
"choices": null,
|
|
102
|
+
"default": null,
|
|
103
|
+
"validators": [],
|
|
104
|
+
"max_digits": null,
|
|
105
|
+
"decimal_places": null,
|
|
106
|
+
"read_only": false,
|
|
107
|
+
"ref": null
|
|
108
|
+
},
|
|
109
|
+
"queued_at": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"title": "Queued at",
|
|
112
|
+
"required": true,
|
|
113
|
+
"description": null,
|
|
114
|
+
"nullable": false,
|
|
115
|
+
"format": "date-time",
|
|
116
|
+
"max_length": null,
|
|
117
|
+
"choices": null,
|
|
118
|
+
"default": null,
|
|
119
|
+
"validators": [],
|
|
120
|
+
"max_digits": null,
|
|
121
|
+
"decimal_places": null,
|
|
122
|
+
"read_only": false,
|
|
123
|
+
"ref": null
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"relationships": {},
|
|
127
|
+
"permissions": [
|
|
128
|
+
"CanSendNotifications"
|
|
129
|
+
],
|
|
130
|
+
"display": {
|
|
131
|
+
"display_title": "Send Notifications",
|
|
132
|
+
"display_description": "Send notifications to multiple recipients with priority control",
|
|
133
|
+
"field_groups": [
|
|
134
|
+
{
|
|
135
|
+
"display_title": "Message Content",
|
|
136
|
+
"display_description": "The notification message and priority level",
|
|
137
|
+
"field_names": [
|
|
138
|
+
"message",
|
|
139
|
+
"priority"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"display_title": "Recipients",
|
|
144
|
+
"display_description": "Email addresses to send notifications to",
|
|
145
|
+
"field_names": [
|
|
146
|
+
"recipients"
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"field_display_configs": [
|
|
151
|
+
{
|
|
152
|
+
"field_name": "message",
|
|
153
|
+
"display_component": "TextArea",
|
|
154
|
+
"filter_queryset": null,
|
|
155
|
+
"display_help_text": "Enter your notification message here (max 500 characters)",
|
|
156
|
+
"extra": null
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"field_name": "priority",
|
|
160
|
+
"display_component": "RadioGroup",
|
|
161
|
+
"filter_queryset": null,
|
|
162
|
+
"display_help_text": "High priority notifications are processed first",
|
|
163
|
+
"extra": null
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"field_name": "recipients",
|
|
167
|
+
"display_component": "EmailListInput",
|
|
168
|
+
"filter_queryset": null,
|
|
169
|
+
"display_help_text": "Add one or more email addresses",
|
|
170
|
+
"extra": null
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"extra": null
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./django_app/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './django_app/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./default/index.js";
|
|
@@ -83,7 +83,10 @@ export class DateParsingHelpers {
|
|
|
83
83
|
try {
|
|
84
84
|
// Handle ISO format (Django's default)
|
|
85
85
|
if (!dateFormat || dateFormat === 'iso-8601') {
|
|
86
|
-
return date
|
|
86
|
+
// For date-only fields, return just the date portion
|
|
87
|
+
return fieldFormat === 'date'
|
|
88
|
+
? date.toISOString().slice(0, 10)
|
|
89
|
+
: date.toISOString();
|
|
87
90
|
}
|
|
88
91
|
// Handle supported Django formats
|
|
89
92
|
const dateFnsFormat = this.SUPPORTED_FORMATS[dateFormat];
|
|
@@ -75,9 +75,13 @@ export const dateFieldSerializer = {
|
|
|
75
75
|
return value;
|
|
76
76
|
// If it's a Date object, serialize it using DateParsingHelpers
|
|
77
77
|
if (value instanceof Date) {
|
|
78
|
-
const { model, field } = context;
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
const { model, field, fieldSchema } = context;
|
|
79
|
+
// Use model schema, or create minimal schema from fieldSchema (for actions)
|
|
80
|
+
const schema = model?.schema || (fieldSchema?.format && {
|
|
81
|
+
properties: { [field]: { format: fieldSchema.format } }
|
|
82
|
+
});
|
|
83
|
+
if (schema) {
|
|
84
|
+
return DateParsingHelpers.serializeDate(value, field, schema);
|
|
81
85
|
}
|
|
82
86
|
// Fallback if no schema context
|
|
83
87
|
return value.toISOString();
|
|
@@ -214,7 +218,7 @@ export function serializeActionPayload(payload, inputProperties) {
|
|
|
214
218
|
const typeSerializers = serializers[type];
|
|
215
219
|
const serializer = typeSerializers?.[format];
|
|
216
220
|
if (serializer) {
|
|
217
|
-
serializedPayload[field] = serializer.toInternal(value, { field });
|
|
221
|
+
serializedPayload[field] = serializer.toInternal(value, { field, fieldSchema });
|
|
218
222
|
}
|
|
219
223
|
else {
|
|
220
224
|
serializedPayload[field] = value;
|