@agroyaar/sdk 3.6.1 → 3.6.2
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/index.cjs +129 -20
- package/dist/index.d.ts +71 -25
- package/dist/index.mjs +129 -20
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -37,14 +37,114 @@ module.exports = __toCommonJS(src_exports);
|
|
|
37
37
|
// src/core/client.ts
|
|
38
38
|
var import_axios = __toESM(require("axios"), 1);
|
|
39
39
|
|
|
40
|
+
// src/errors/sdkError.ts
|
|
41
|
+
var isSDKError = (e) => !!e && typeof e === "object" && "kind" in e;
|
|
42
|
+
function fromAxiosError(err) {
|
|
43
|
+
const e = err;
|
|
44
|
+
if (e?.__CANCEL__ || e?.code === "ERR_CANCELED") {
|
|
45
|
+
return { kind: "CanceledError", message: "Request canceled", cause: err };
|
|
46
|
+
}
|
|
47
|
+
if (e?.code === "ECONNABORTED") {
|
|
48
|
+
const duration = parseInt(e?.config?.timeout, 10);
|
|
49
|
+
return {
|
|
50
|
+
kind: "TimeoutError",
|
|
51
|
+
message: "Request timed out",
|
|
52
|
+
durationMs: Number.isFinite(duration) ? duration : void 0,
|
|
53
|
+
cause: err
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (e?.isAxiosError && !e?.response) {
|
|
57
|
+
return {
|
|
58
|
+
kind: "NetworkError",
|
|
59
|
+
message: "Network error or CORS issue",
|
|
60
|
+
cause: err
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const axiosErr = e;
|
|
64
|
+
const status = axiosErr?.response?.status;
|
|
65
|
+
const data = axiosErr?.response?.data;
|
|
66
|
+
const headers = axiosErr?.response?.headers ?? {};
|
|
67
|
+
const requestId = headers["x-request-id"] || headers["x-correlation-id"] || headers["x-amzn-trace-id"] || null;
|
|
68
|
+
if (status === 401 || status === 403) {
|
|
69
|
+
return {
|
|
70
|
+
kind: "AuthError",
|
|
71
|
+
status,
|
|
72
|
+
message: data?.message ?? "Authentication/authorization failed",
|
|
73
|
+
requestId,
|
|
74
|
+
cause: err
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (status === 404) {
|
|
78
|
+
return {
|
|
79
|
+
kind: "NotFoundError",
|
|
80
|
+
status,
|
|
81
|
+
message: data?.message ?? "Resource not found",
|
|
82
|
+
requestId,
|
|
83
|
+
cause: err
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (status === 429) {
|
|
87
|
+
const raHeader = headers["retry-after"];
|
|
88
|
+
const retryAfter = raHeader ? Number(raHeader) || null : null;
|
|
89
|
+
return {
|
|
90
|
+
kind: "RateLimitError",
|
|
91
|
+
status,
|
|
92
|
+
message: data?.message ?? "Too many requests",
|
|
93
|
+
retryAfter,
|
|
94
|
+
requestId,
|
|
95
|
+
cause: err
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (status === 400) {
|
|
99
|
+
return {
|
|
100
|
+
kind: "ValidationError",
|
|
101
|
+
status,
|
|
102
|
+
message: data?.message ?? "Validation failed",
|
|
103
|
+
fieldErrors: data?.errors,
|
|
104
|
+
raw: data,
|
|
105
|
+
requestId,
|
|
106
|
+
cause: err
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (status && [500, 502, 503, 504].includes(status)) {
|
|
110
|
+
return {
|
|
111
|
+
kind: "ServerError",
|
|
112
|
+
status,
|
|
113
|
+
message: data?.message ?? "Server error",
|
|
114
|
+
data,
|
|
115
|
+
requestId,
|
|
116
|
+
cause: err
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (typeof status === "number") {
|
|
120
|
+
return {
|
|
121
|
+
kind: "HttpError",
|
|
122
|
+
status,
|
|
123
|
+
message: data?.message ?? `HTTP error ${status}`,
|
|
124
|
+
data,
|
|
125
|
+
requestId,
|
|
126
|
+
cause: err
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
kind: "NetworkError",
|
|
131
|
+
message: e?.message ?? "Unknown error",
|
|
132
|
+
cause: err
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
40
136
|
// src/middlewares/errorHandler.ts
|
|
41
137
|
var errorHandler = (error) => {
|
|
138
|
+
const sdkErr = fromAxiosError(error);
|
|
42
139
|
console.error("[HTTP Error]", {
|
|
43
|
-
|
|
44
|
-
status:
|
|
45
|
-
message:
|
|
140
|
+
kind: sdkErr.kind,
|
|
141
|
+
status: sdkErr.status,
|
|
142
|
+
message: sdkErr.message,
|
|
143
|
+
requestId: sdkErr.requestId,
|
|
144
|
+
url: error?.config?.url,
|
|
145
|
+
method: error?.config?.method
|
|
46
146
|
});
|
|
47
|
-
return Promise.reject(
|
|
147
|
+
return Promise.reject(sdkErr);
|
|
48
148
|
};
|
|
49
149
|
|
|
50
150
|
// src/middlewares/logger.ts
|
|
@@ -121,8 +221,8 @@ var import_ts_belt2 = require("@mobily/ts-belt");
|
|
|
121
221
|
// src/utils/wrapError.ts
|
|
122
222
|
var import_ts_belt = require("@mobily/ts-belt");
|
|
123
223
|
var wrapError = (error) => {
|
|
124
|
-
const
|
|
125
|
-
return import_ts_belt.R.Error(
|
|
224
|
+
const e = isSDKError(error) ? error : fromAxiosError(error);
|
|
225
|
+
return import_ts_belt.R.Error(e);
|
|
126
226
|
};
|
|
127
227
|
|
|
128
228
|
// src/services/dashboard/cropping-pattern/croppingPattern.service.ts
|
|
@@ -639,7 +739,7 @@ var createAuthService = (client) => ({
|
|
|
639
739
|
});
|
|
640
740
|
|
|
641
741
|
// src/services/dashboard/mechanization/mechanization.service.ts
|
|
642
|
-
var
|
|
742
|
+
var import_ts_belt11 = require("@mobily/ts-belt");
|
|
643
743
|
|
|
644
744
|
// src/services/dashboard/mechanization/mechanization.mapper.ts
|
|
645
745
|
var mechanizationMapper = {
|
|
@@ -661,6 +761,17 @@ var mechanizationMapper = {
|
|
|
661
761
|
create: (_dto) => ({})
|
|
662
762
|
};
|
|
663
763
|
|
|
764
|
+
// src/utils/call.ts
|
|
765
|
+
var import_ts_belt10 = require("@mobily/ts-belt");
|
|
766
|
+
var call = async (fn) => {
|
|
767
|
+
try {
|
|
768
|
+
const data = await fn();
|
|
769
|
+
return import_ts_belt10.R.Ok(data);
|
|
770
|
+
} catch (e) {
|
|
771
|
+
return wrapError(e);
|
|
772
|
+
}
|
|
773
|
+
};
|
|
774
|
+
|
|
664
775
|
// src/services/dashboard/mechanization/mechanization.service.ts
|
|
665
776
|
var createMechanizationServices = (client) => ({
|
|
666
777
|
getOne: async ({
|
|
@@ -675,7 +786,7 @@ var createMechanizationServices = (client) => ({
|
|
|
675
786
|
}
|
|
676
787
|
);
|
|
677
788
|
const mechanization = response.result.data.mechanization;
|
|
678
|
-
return
|
|
789
|
+
return import_ts_belt11.R.Ok(mechanizationMapper.getOne(mechanization));
|
|
679
790
|
} catch (error) {
|
|
680
791
|
return wrapError(error);
|
|
681
792
|
}
|
|
@@ -684,7 +795,7 @@ var createMechanizationServices = (client) => ({
|
|
|
684
795
|
pathParams: { farmerId },
|
|
685
796
|
path: { kindName }
|
|
686
797
|
}) => {
|
|
687
|
-
|
|
798
|
+
call(async () => {
|
|
688
799
|
const response = await client.typed(
|
|
689
800
|
"get",
|
|
690
801
|
"/farmers/{farmerId}/mechanizations",
|
|
@@ -698,10 +809,8 @@ var createMechanizationServices = (client) => ({
|
|
|
698
809
|
}
|
|
699
810
|
);
|
|
700
811
|
const mechanizations = response.result.data.mechanizations;
|
|
701
|
-
return
|
|
702
|
-
}
|
|
703
|
-
return wrapError(error);
|
|
704
|
-
}
|
|
812
|
+
return mechanizationMapper.getAll(mechanizations);
|
|
813
|
+
});
|
|
705
814
|
},
|
|
706
815
|
create: async ({
|
|
707
816
|
body,
|
|
@@ -722,7 +831,7 @@ var createMechanizationServices = (client) => ({
|
|
|
722
831
|
}
|
|
723
832
|
}
|
|
724
833
|
);
|
|
725
|
-
return
|
|
834
|
+
return import_ts_belt11.R.Ok(
|
|
726
835
|
mechanizationMapper.create(response.result.data.mechanization)
|
|
727
836
|
);
|
|
728
837
|
} catch (error) {
|
|
@@ -732,7 +841,7 @@ var createMechanizationServices = (client) => ({
|
|
|
732
841
|
});
|
|
733
842
|
|
|
734
843
|
// src/services/dashboard/experiments/experiments.service.ts
|
|
735
|
-
var
|
|
844
|
+
var import_ts_belt12 = require("@mobily/ts-belt");
|
|
736
845
|
|
|
737
846
|
// src/services/dashboard/experiments/experiments.mapper.ts
|
|
738
847
|
var experimentMapper = {
|
|
@@ -764,7 +873,7 @@ var createExperimentServices = (client) => ({
|
|
|
764
873
|
pathParams
|
|
765
874
|
}
|
|
766
875
|
);
|
|
767
|
-
return
|
|
876
|
+
return import_ts_belt12.R.Ok(experimentMapper.getExperiments(response.result.data));
|
|
768
877
|
} catch (error) {
|
|
769
878
|
return wrapError(error);
|
|
770
879
|
}
|
|
@@ -782,12 +891,12 @@ var staticsMappers = {
|
|
|
782
891
|
};
|
|
783
892
|
|
|
784
893
|
// src/services/dashboard/statics/statics.service.ts
|
|
785
|
-
var
|
|
894
|
+
var import_ts_belt13 = require("@mobily/ts-belt");
|
|
786
895
|
var createStaticsServices = (client) => ({
|
|
787
896
|
getPlantType: async () => {
|
|
788
897
|
try {
|
|
789
898
|
const response = await client.typed("get", "/statics/product-kinds");
|
|
790
|
-
return
|
|
899
|
+
return import_ts_belt13.R.Ok(
|
|
791
900
|
staticsMappers.getPlantTypes(response.result.data.productKinds)
|
|
792
901
|
);
|
|
793
902
|
} catch (error) {
|
|
@@ -797,7 +906,7 @@ var createStaticsServices = (client) => ({
|
|
|
797
906
|
});
|
|
798
907
|
|
|
799
908
|
// src/services/dashboard/products/products.service.ts
|
|
800
|
-
var
|
|
909
|
+
var import_ts_belt14 = require("@mobily/ts-belt");
|
|
801
910
|
|
|
802
911
|
// src/services/dashboard/products/products.mapper.ts
|
|
803
912
|
var productsMappers = {
|
|
@@ -825,7 +934,7 @@ var createProductsServices = (client) => ({
|
|
|
825
934
|
params
|
|
826
935
|
}
|
|
827
936
|
);
|
|
828
|
-
return
|
|
937
|
+
return import_ts_belt14.R.Ok(productsMappers.getProducts(response.result.data.products));
|
|
829
938
|
} catch (error) {
|
|
830
939
|
return wrapError(error);
|
|
831
940
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -5402,6 +5402,52 @@ declare namespace ApiTypes {
|
|
|
5402
5402
|
type Products = ProductsTypes;
|
|
5403
5403
|
}
|
|
5404
5404
|
|
|
5405
|
+
type Base = {
|
|
5406
|
+
readonly message: string;
|
|
5407
|
+
readonly requestId?: string | null;
|
|
5408
|
+
readonly cause?: unknown;
|
|
5409
|
+
};
|
|
5410
|
+
type NetworkError = Base & {
|
|
5411
|
+
kind: "NetworkError";
|
|
5412
|
+
};
|
|
5413
|
+
type TimeoutError = Base & {
|
|
5414
|
+
kind: "TimeoutError";
|
|
5415
|
+
durationMs?: number;
|
|
5416
|
+
};
|
|
5417
|
+
type CanceledError = Base & {
|
|
5418
|
+
kind: "CanceledError";
|
|
5419
|
+
};
|
|
5420
|
+
type AuthError = Base & {
|
|
5421
|
+
kind: "AuthError";
|
|
5422
|
+
status: 401 | 403;
|
|
5423
|
+
};
|
|
5424
|
+
type NotFoundError = Base & {
|
|
5425
|
+
kind: "NotFoundError";
|
|
5426
|
+
status: 404;
|
|
5427
|
+
};
|
|
5428
|
+
type RateLimitError = Base & {
|
|
5429
|
+
kind: "RateLimitError";
|
|
5430
|
+
status: 429;
|
|
5431
|
+
retryAfter?: number | null;
|
|
5432
|
+
};
|
|
5433
|
+
type ValidationError = Base & {
|
|
5434
|
+
kind: "ValidationError";
|
|
5435
|
+
status: 400;
|
|
5436
|
+
fieldErrors?: Record<string, string[]>;
|
|
5437
|
+
raw?: unknown;
|
|
5438
|
+
};
|
|
5439
|
+
type ServerError = Base & {
|
|
5440
|
+
kind: "ServerError";
|
|
5441
|
+
status: number;
|
|
5442
|
+
data?: unknown;
|
|
5443
|
+
};
|
|
5444
|
+
type HttpError = Base & {
|
|
5445
|
+
kind: "HttpError";
|
|
5446
|
+
status: number;
|
|
5447
|
+
data?: unknown;
|
|
5448
|
+
};
|
|
5449
|
+
type SDKError = NetworkError | TimeoutError | CanceledError | AuthError | NotFoundError | RateLimitError | ValidationError | ServerError | HttpError;
|
|
5450
|
+
|
|
5405
5451
|
type GetProductsParams = paths["/farmers/{farmerId}/products"]["get"]["parameters"];
|
|
5406
5452
|
type ProductsTypes = ApiRequestType<{
|
|
5407
5453
|
products: components["schemas"]["Product"];
|
|
@@ -5464,57 +5510,57 @@ declare const createClient: (config: ClientConfig, middlewares?: ((_config: Inte
|
|
|
5464
5510
|
declare const createSDK: (config: ClientConfig, middlewares?: Parameters<typeof createClient>[1]) => {
|
|
5465
5511
|
dashboardServices: {
|
|
5466
5512
|
mechanization: {
|
|
5467
|
-
getOne: ({ pathParams, }: MechanizationTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<
|
|
5468
|
-
getAll: ({ pathParams: { farmerId }, path: { kindName }, }: MechanizationTypes["RequestParams"]["getAll"]) => Promise<
|
|
5469
|
-
create: ({ body, pathParams, }: MechanizationTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<
|
|
5513
|
+
getOne: ({ pathParams, }: MechanizationTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MechanizationModel>>;
|
|
5514
|
+
getAll: ({ pathParams: { farmerId }, path: { kindName }, }: MechanizationTypes["RequestParams"]["getAll"]) => Promise<void>;
|
|
5515
|
+
create: ({ body, pathParams, }: MechanizationTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<unknown>>;
|
|
5470
5516
|
};
|
|
5471
5517
|
auth: {
|
|
5472
|
-
verifyPhoneNumber: ({ body, }: AuthType["RequestParams"]["createVerifyPhoneNumber"]) => Promise<_mobily_ts_belt.Error<
|
|
5518
|
+
verifyPhoneNumber: ({ body, }: AuthType["RequestParams"]["createVerifyPhoneNumber"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<VerifyPhoneNumberModel>>;
|
|
5473
5519
|
};
|
|
5474
5520
|
deviceCode: {
|
|
5475
|
-
create: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<
|
|
5476
|
-
update: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["update"]) => Promise<_mobily_ts_belt.Error<
|
|
5477
|
-
delete: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["delete"]) => Promise<_mobily_ts_belt.Error<
|
|
5521
|
+
create: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<DeviceCodeModel>>;
|
|
5522
|
+
update: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["update"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<DeviceCodeModel>>;
|
|
5523
|
+
delete: ({ body, pathParams, }: DeviceCodeType["RequestParams"]["delete"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<DeviceCodeModel>>;
|
|
5478
5524
|
};
|
|
5479
5525
|
mechanizationQuestion: {
|
|
5480
|
-
getAll: ({ params, }: MechanizationQuestionType["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<
|
|
5526
|
+
getAll: ({ params, }: MechanizationQuestionType["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MechanizationQuestionModel[]>>;
|
|
5481
5527
|
};
|
|
5482
5528
|
seasonsProcess: {
|
|
5483
|
-
getSeasonsProcess: () => Promise<_mobily_ts_belt.Error<
|
|
5529
|
+
getSeasonsProcess: () => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<SeasonsProcessModel[]>>;
|
|
5484
5530
|
};
|
|
5485
5531
|
sensors: {
|
|
5486
|
-
getMechanizationSensors: ({ pathParams, }: SensorType["RequestParams"]["getSensors"]) => Promise<_mobily_ts_belt.Error<
|
|
5487
|
-
getMechanizationTemperatureChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getTemperatureChanges"]) => Promise<_mobily_ts_belt.Error<
|
|
5488
|
-
getMechanizationFuelConsumptionChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getFuelConsumptionChanges"]) => Promise<_mobily_ts_belt.Error<
|
|
5489
|
-
getSpeedChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getSpeedChange"]) => Promise<_mobily_ts_belt.Error<
|
|
5532
|
+
getMechanizationSensors: ({ pathParams, }: SensorType["RequestParams"]["getSensors"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MotorizedMechanizationSensorsModel>>;
|
|
5533
|
+
getMechanizationTemperatureChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getTemperatureChanges"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MechanizationTemperatureChangesModel[]>>;
|
|
5534
|
+
getMechanizationFuelConsumptionChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getFuelConsumptionChanges"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MechanizationFuelConsumptionChangesModel[]>>;
|
|
5535
|
+
getSpeedChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getSpeedChange"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<{
|
|
5490
5536
|
readonly speed: number;
|
|
5491
5537
|
readonly date: string;
|
|
5492
5538
|
}[]>>;
|
|
5493
|
-
getMechanizationMovementChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getMovementChange"]) => Promise<_mobily_ts_belt.Error<
|
|
5539
|
+
getMechanizationMovementChanges: ({ params, pathParams, }: SensorType["RequestParams"]["getMovementChange"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MovementChangeModel>>;
|
|
5494
5540
|
};
|
|
5495
5541
|
varieties: {
|
|
5496
|
-
getAll: ({ params }: VarietiesType["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<
|
|
5542
|
+
getAll: ({ params }: VarietiesType["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<MechanizationVarietyModel[]>>;
|
|
5497
5543
|
};
|
|
5498
5544
|
experiment: {
|
|
5499
|
-
getListExperiments: ({ params, pathParams, }: ExperimentsType["RequestParams"]["getExperiments"]) => Promise<_mobily_ts_belt.Error<
|
|
5545
|
+
getListExperiments: ({ params, pathParams, }: ExperimentsType["RequestParams"]["getExperiments"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<ExperimentsModel>>;
|
|
5500
5546
|
};
|
|
5501
5547
|
croppingPattern: {
|
|
5502
|
-
getOne: ({ pathParams, }: CroppingPatternTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<
|
|
5503
|
-
getAll: ({ pathParams, }: CroppingPatternTypes["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<
|
|
5504
|
-
create: ({ body, pathParams, }: CroppingPatternTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<
|
|
5548
|
+
getOne: ({ pathParams, }: CroppingPatternTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<CroppingPatternModel>>;
|
|
5549
|
+
getAll: ({ pathParams, }: CroppingPatternTypes["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<CroppingPatternModel[]>>;
|
|
5550
|
+
create: ({ body, pathParams, }: CroppingPatternTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<unknown>>;
|
|
5505
5551
|
};
|
|
5506
5552
|
croppingSuitability: {
|
|
5507
|
-
getOne: ({ pathParams, }: CroppingSuitabilityTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<
|
|
5508
|
-
getAll: ({ pathParams, }: CroppingSuitabilityTypes["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<
|
|
5509
|
-
create: ({ body, pathParams, }: CroppingSuitabilityTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<
|
|
5553
|
+
getOne: ({ pathParams, }: CroppingSuitabilityTypes["RequestParams"]["getOne"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<CroppingSuitabilityModel>>;
|
|
5554
|
+
getAll: ({ pathParams, }: CroppingSuitabilityTypes["RequestParams"]["getAll"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<CroppingSuitabilityModel[]>>;
|
|
5555
|
+
create: ({ body, pathParams, }: CroppingSuitabilityTypes["RequestParams"]["create"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<unknown>>;
|
|
5510
5556
|
};
|
|
5511
5557
|
statics: {
|
|
5512
|
-
getPlantType: () => Promise<_mobily_ts_belt.Error<
|
|
5558
|
+
getPlantType: () => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<PlantTypeModel[]>>;
|
|
5513
5559
|
};
|
|
5514
5560
|
products: {
|
|
5515
|
-
getProducts: ({ pathParams, params }: ProductsTypes["RequestParams"]["getProducts"]) => Promise<_mobily_ts_belt.Error<
|
|
5561
|
+
getProducts: ({ pathParams, params }: ProductsTypes["RequestParams"]["getProducts"]) => Promise<_mobily_ts_belt.Error<SDKError> | _mobily_ts_belt.Ok<ProductModel[]>>;
|
|
5516
5562
|
};
|
|
5517
5563
|
};
|
|
5518
5564
|
};
|
|
5519
5565
|
|
|
5520
|
-
export { type Alert, type AnnuallyChartReportModel, type ApiRequestType, ApiTypes, type City, type CroppingPatternModel, type CroppingPatternReportModel, type CroppingPatternRiskChartModel, type CroppingSuitabilityKindsModel, type CroppingSuitabilityModel, type CroppingSuitabilityReportModel, type CroppingSuitabilityType, type DayOfYearChartReportModel, type DeviceCodeModel, type Experiment, type ExperimentModel, type ExperimentModelWithMeta, type ExperimentParameters, type ExperimentsModel, type Farm, type Farmer, Identifiers, type Invoice, type IrrigationSource, type LandSuitabilityClassesKindsModel, type LandSuitabilityClassesType, type Location, type MechanizationFuelConsumptionChangesModel, type MechanizationMachineUsageKind, type MechanizationMachineUsageType, type MechanizationModel, type MechanizationMovementChangesModel, type MechanizationMovementChangesModelWithMeta, type MechanizationQuestionModel, type MechanizationSeasonProcessKind, type MechanizationSeasonProcessType, type MechanizationTemperatureChangesModel, type MechanizationType, type MechanizationVarietyModel, type MotorizedMechanizationSensorsModel, type MovementChangeModel, type OwnershipType, type PlantTypeModel, type Product, type ProductKind, type ProductKindType, type ProductModel, type Province, type SeasonsProcessModel, type ServiceType, type SpeedChangesChartModel, type Status, type StatusType, type TaskType, type TrackingDeviceCodeModel, type UnavailableExperimentParameters, type VarietyKind, type VerifyPhoneNumberModel, type WeatherStation, type WeatherStationAlertPhoneNumber, createSDK };
|
|
5566
|
+
export { type Alert, type AnnuallyChartReportModel, type ApiRequestType, ApiTypes, type City, type CroppingPatternModel, type CroppingPatternReportModel, type CroppingPatternRiskChartModel, type CroppingSuitabilityKindsModel, type CroppingSuitabilityModel, type CroppingSuitabilityReportModel, type CroppingSuitabilityType, type DayOfYearChartReportModel, type DeviceCodeModel, type Experiment, type ExperimentModel, type ExperimentModelWithMeta, type ExperimentParameters, type ExperimentsModel, type Farm, type Farmer, Identifiers, type Invoice, type IrrigationSource, type LandSuitabilityClassesKindsModel, type LandSuitabilityClassesType, type Location, type MechanizationFuelConsumptionChangesModel, type MechanizationMachineUsageKind, type MechanizationMachineUsageType, type MechanizationModel, type MechanizationMovementChangesModel, type MechanizationMovementChangesModelWithMeta, type MechanizationQuestionModel, type MechanizationSeasonProcessKind, type MechanizationSeasonProcessType, type MechanizationTemperatureChangesModel, type MechanizationType, type MechanizationVarietyModel, type MotorizedMechanizationSensorsModel, type MovementChangeModel, type OwnershipType, type PlantTypeModel, type Product, type ProductKind, type ProductKindType, type ProductModel, type Province, type SDKError, type SeasonsProcessModel, type ServiceType, type SpeedChangesChartModel, type Status, type StatusType, type TaskType, type TrackingDeviceCodeModel, type UnavailableExperimentParameters, type VarietyKind, type VerifyPhoneNumberModel, type WeatherStation, type WeatherStationAlertPhoneNumber, createSDK };
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,114 @@
|
|
|
1
1
|
// src/core/client.ts
|
|
2
2
|
import axios from "axios";
|
|
3
3
|
|
|
4
|
+
// src/errors/sdkError.ts
|
|
5
|
+
var isSDKError = (e) => !!e && typeof e === "object" && "kind" in e;
|
|
6
|
+
function fromAxiosError(err) {
|
|
7
|
+
const e = err;
|
|
8
|
+
if (e?.__CANCEL__ || e?.code === "ERR_CANCELED") {
|
|
9
|
+
return { kind: "CanceledError", message: "Request canceled", cause: err };
|
|
10
|
+
}
|
|
11
|
+
if (e?.code === "ECONNABORTED") {
|
|
12
|
+
const duration = parseInt(e?.config?.timeout, 10);
|
|
13
|
+
return {
|
|
14
|
+
kind: "TimeoutError",
|
|
15
|
+
message: "Request timed out",
|
|
16
|
+
durationMs: Number.isFinite(duration) ? duration : void 0,
|
|
17
|
+
cause: err
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (e?.isAxiosError && !e?.response) {
|
|
21
|
+
return {
|
|
22
|
+
kind: "NetworkError",
|
|
23
|
+
message: "Network error or CORS issue",
|
|
24
|
+
cause: err
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const axiosErr = e;
|
|
28
|
+
const status = axiosErr?.response?.status;
|
|
29
|
+
const data = axiosErr?.response?.data;
|
|
30
|
+
const headers = axiosErr?.response?.headers ?? {};
|
|
31
|
+
const requestId = headers["x-request-id"] || headers["x-correlation-id"] || headers["x-amzn-trace-id"] || null;
|
|
32
|
+
if (status === 401 || status === 403) {
|
|
33
|
+
return {
|
|
34
|
+
kind: "AuthError",
|
|
35
|
+
status,
|
|
36
|
+
message: data?.message ?? "Authentication/authorization failed",
|
|
37
|
+
requestId,
|
|
38
|
+
cause: err
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (status === 404) {
|
|
42
|
+
return {
|
|
43
|
+
kind: "NotFoundError",
|
|
44
|
+
status,
|
|
45
|
+
message: data?.message ?? "Resource not found",
|
|
46
|
+
requestId,
|
|
47
|
+
cause: err
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (status === 429) {
|
|
51
|
+
const raHeader = headers["retry-after"];
|
|
52
|
+
const retryAfter = raHeader ? Number(raHeader) || null : null;
|
|
53
|
+
return {
|
|
54
|
+
kind: "RateLimitError",
|
|
55
|
+
status,
|
|
56
|
+
message: data?.message ?? "Too many requests",
|
|
57
|
+
retryAfter,
|
|
58
|
+
requestId,
|
|
59
|
+
cause: err
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (status === 400) {
|
|
63
|
+
return {
|
|
64
|
+
kind: "ValidationError",
|
|
65
|
+
status,
|
|
66
|
+
message: data?.message ?? "Validation failed",
|
|
67
|
+
fieldErrors: data?.errors,
|
|
68
|
+
raw: data,
|
|
69
|
+
requestId,
|
|
70
|
+
cause: err
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (status && [500, 502, 503, 504].includes(status)) {
|
|
74
|
+
return {
|
|
75
|
+
kind: "ServerError",
|
|
76
|
+
status,
|
|
77
|
+
message: data?.message ?? "Server error",
|
|
78
|
+
data,
|
|
79
|
+
requestId,
|
|
80
|
+
cause: err
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (typeof status === "number") {
|
|
84
|
+
return {
|
|
85
|
+
kind: "HttpError",
|
|
86
|
+
status,
|
|
87
|
+
message: data?.message ?? `HTTP error ${status}`,
|
|
88
|
+
data,
|
|
89
|
+
requestId,
|
|
90
|
+
cause: err
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
kind: "NetworkError",
|
|
95
|
+
message: e?.message ?? "Unknown error",
|
|
96
|
+
cause: err
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
4
100
|
// src/middlewares/errorHandler.ts
|
|
5
101
|
var errorHandler = (error) => {
|
|
102
|
+
const sdkErr = fromAxiosError(error);
|
|
6
103
|
console.error("[HTTP Error]", {
|
|
7
|
-
|
|
8
|
-
status:
|
|
9
|
-
message:
|
|
104
|
+
kind: sdkErr.kind,
|
|
105
|
+
status: sdkErr.status,
|
|
106
|
+
message: sdkErr.message,
|
|
107
|
+
requestId: sdkErr.requestId,
|
|
108
|
+
url: error?.config?.url,
|
|
109
|
+
method: error?.config?.method
|
|
10
110
|
});
|
|
11
|
-
return Promise.reject(
|
|
111
|
+
return Promise.reject(sdkErr);
|
|
12
112
|
};
|
|
13
113
|
|
|
14
114
|
// src/middlewares/logger.ts
|
|
@@ -85,8 +185,8 @@ import { R as R2 } from "@mobily/ts-belt";
|
|
|
85
185
|
// src/utils/wrapError.ts
|
|
86
186
|
import { R } from "@mobily/ts-belt";
|
|
87
187
|
var wrapError = (error) => {
|
|
88
|
-
const
|
|
89
|
-
return R.Error(
|
|
188
|
+
const e = isSDKError(error) ? error : fromAxiosError(error);
|
|
189
|
+
return R.Error(e);
|
|
90
190
|
};
|
|
91
191
|
|
|
92
192
|
// src/services/dashboard/cropping-pattern/croppingPattern.service.ts
|
|
@@ -603,7 +703,7 @@ var createAuthService = (client) => ({
|
|
|
603
703
|
});
|
|
604
704
|
|
|
605
705
|
// src/services/dashboard/mechanization/mechanization.service.ts
|
|
606
|
-
import { R as
|
|
706
|
+
import { R as R11 } from "@mobily/ts-belt";
|
|
607
707
|
|
|
608
708
|
// src/services/dashboard/mechanization/mechanization.mapper.ts
|
|
609
709
|
var mechanizationMapper = {
|
|
@@ -625,6 +725,17 @@ var mechanizationMapper = {
|
|
|
625
725
|
create: (_dto) => ({})
|
|
626
726
|
};
|
|
627
727
|
|
|
728
|
+
// src/utils/call.ts
|
|
729
|
+
import { R as R10 } from "@mobily/ts-belt";
|
|
730
|
+
var call = async (fn) => {
|
|
731
|
+
try {
|
|
732
|
+
const data = await fn();
|
|
733
|
+
return R10.Ok(data);
|
|
734
|
+
} catch (e) {
|
|
735
|
+
return wrapError(e);
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
|
|
628
739
|
// src/services/dashboard/mechanization/mechanization.service.ts
|
|
629
740
|
var createMechanizationServices = (client) => ({
|
|
630
741
|
getOne: async ({
|
|
@@ -639,7 +750,7 @@ var createMechanizationServices = (client) => ({
|
|
|
639
750
|
}
|
|
640
751
|
);
|
|
641
752
|
const mechanization = response.result.data.mechanization;
|
|
642
|
-
return
|
|
753
|
+
return R11.Ok(mechanizationMapper.getOne(mechanization));
|
|
643
754
|
} catch (error) {
|
|
644
755
|
return wrapError(error);
|
|
645
756
|
}
|
|
@@ -648,7 +759,7 @@ var createMechanizationServices = (client) => ({
|
|
|
648
759
|
pathParams: { farmerId },
|
|
649
760
|
path: { kindName }
|
|
650
761
|
}) => {
|
|
651
|
-
|
|
762
|
+
call(async () => {
|
|
652
763
|
const response = await client.typed(
|
|
653
764
|
"get",
|
|
654
765
|
"/farmers/{farmerId}/mechanizations",
|
|
@@ -662,10 +773,8 @@ var createMechanizationServices = (client) => ({
|
|
|
662
773
|
}
|
|
663
774
|
);
|
|
664
775
|
const mechanizations = response.result.data.mechanizations;
|
|
665
|
-
return
|
|
666
|
-
}
|
|
667
|
-
return wrapError(error);
|
|
668
|
-
}
|
|
776
|
+
return mechanizationMapper.getAll(mechanizations);
|
|
777
|
+
});
|
|
669
778
|
},
|
|
670
779
|
create: async ({
|
|
671
780
|
body,
|
|
@@ -686,7 +795,7 @@ var createMechanizationServices = (client) => ({
|
|
|
686
795
|
}
|
|
687
796
|
}
|
|
688
797
|
);
|
|
689
|
-
return
|
|
798
|
+
return R11.Ok(
|
|
690
799
|
mechanizationMapper.create(response.result.data.mechanization)
|
|
691
800
|
);
|
|
692
801
|
} catch (error) {
|
|
@@ -696,7 +805,7 @@ var createMechanizationServices = (client) => ({
|
|
|
696
805
|
});
|
|
697
806
|
|
|
698
807
|
// src/services/dashboard/experiments/experiments.service.ts
|
|
699
|
-
import { R as
|
|
808
|
+
import { R as R12 } from "@mobily/ts-belt";
|
|
700
809
|
|
|
701
810
|
// src/services/dashboard/experiments/experiments.mapper.ts
|
|
702
811
|
var experimentMapper = {
|
|
@@ -728,7 +837,7 @@ var createExperimentServices = (client) => ({
|
|
|
728
837
|
pathParams
|
|
729
838
|
}
|
|
730
839
|
);
|
|
731
|
-
return
|
|
840
|
+
return R12.Ok(experimentMapper.getExperiments(response.result.data));
|
|
732
841
|
} catch (error) {
|
|
733
842
|
return wrapError(error);
|
|
734
843
|
}
|
|
@@ -746,12 +855,12 @@ var staticsMappers = {
|
|
|
746
855
|
};
|
|
747
856
|
|
|
748
857
|
// src/services/dashboard/statics/statics.service.ts
|
|
749
|
-
import { R as
|
|
858
|
+
import { R as R13 } from "@mobily/ts-belt";
|
|
750
859
|
var createStaticsServices = (client) => ({
|
|
751
860
|
getPlantType: async () => {
|
|
752
861
|
try {
|
|
753
862
|
const response = await client.typed("get", "/statics/product-kinds");
|
|
754
|
-
return
|
|
863
|
+
return R13.Ok(
|
|
755
864
|
staticsMappers.getPlantTypes(response.result.data.productKinds)
|
|
756
865
|
);
|
|
757
866
|
} catch (error) {
|
|
@@ -761,7 +870,7 @@ var createStaticsServices = (client) => ({
|
|
|
761
870
|
});
|
|
762
871
|
|
|
763
872
|
// src/services/dashboard/products/products.service.ts
|
|
764
|
-
import { R as
|
|
873
|
+
import { R as R14 } from "@mobily/ts-belt";
|
|
765
874
|
|
|
766
875
|
// src/services/dashboard/products/products.mapper.ts
|
|
767
876
|
var productsMappers = {
|
|
@@ -789,7 +898,7 @@ var createProductsServices = (client) => ({
|
|
|
789
898
|
params
|
|
790
899
|
}
|
|
791
900
|
);
|
|
792
|
-
return
|
|
901
|
+
return R14.Ok(productsMappers.getProducts(response.result.data.products));
|
|
793
902
|
} catch (error) {
|
|
794
903
|
return wrapError(error);
|
|
795
904
|
}
|