@merkl/api 0.16.16 → 0.16.18

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.
@@ -999,6 +999,7 @@ declare const eden: {
999
999
  endTimestamp: bigint;
1000
1000
  campaignId: string;
1001
1001
  CampaignStatus: {
1002
+ status: import("../../database/api/.generated").$Enums.RunStatus;
1002
1003
  computedUntil: bigint;
1003
1004
  processingStarted: bigint;
1004
1005
  }[];
@@ -4100,6 +4101,7 @@ declare const eden: {
4100
4101
  endTimestamp: bigint;
4101
4102
  campaignId: string;
4102
4103
  CampaignStatus: {
4104
+ status: import("../../database/api/.generated").$Enums.RunStatus;
4103
4105
  computedUntil: bigint;
4104
4106
  processingStarted: bigint;
4105
4107
  }[];
@@ -8055,6 +8057,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
8055
8057
  endTimestamp: bigint;
8056
8058
  campaignId: string;
8057
8059
  CampaignStatus: {
8060
+ status: import("../../database/api/.generated").$Enums.RunStatus;
8058
8061
  computedUntil: bigint;
8059
8062
  processingStarted: bigint;
8060
8063
  }[];
@@ -12668,6 +12671,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12668
12671
  endTimestamp: bigint;
12669
12672
  campaignId: string;
12670
12673
  CampaignStatus: {
12674
+ status: import("../../database/api/.generated").$Enums.RunStatus;
12671
12675
  computedUntil: bigint;
12672
12676
  processingStarted: bigint;
12673
12677
  }[];
@@ -15769,6 +15773,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
15769
15773
  endTimestamp: bigint;
15770
15774
  campaignId: string;
15771
15775
  CampaignStatus: {
15776
+ status: import("../../database/api/.generated").$Enums.RunStatus;
15772
15777
  computedUntil: bigint;
15773
15778
  processingStarted: bigint;
15774
15779
  }[];
@@ -1155,6 +1155,7 @@ declare const app: Elysia<"", false, {
1155
1155
  endTimestamp: bigint;
1156
1156
  campaignId: string;
1157
1157
  CampaignStatus: {
1158
+ status: import("../database/api/.generated").$Enums.RunStatus;
1158
1159
  computedUntil: bigint;
1159
1160
  processingStarted: bigint;
1160
1161
  }[];
@@ -217,6 +217,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
217
217
  endTimestamp: bigint;
218
218
  campaignId: string;
219
219
  CampaignStatus: {
220
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
220
221
  computedUntil: bigint;
221
222
  processingStarted: bigint;
222
223
  }[];
@@ -142,6 +142,7 @@ export declare abstract class CampaignRepository {
142
142
  endTimestamp: bigint;
143
143
  campaignId: string;
144
144
  CampaignStatus: {
145
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
145
146
  computedUntil: bigint;
146
147
  processingStarted: bigint;
147
148
  }[];
@@ -256,6 +256,7 @@ export class CampaignRepository {
256
256
  // To be able to filter out campaigns that are already fully computed
257
257
  take: 1,
258
258
  select: {
259
+ status: true,
259
260
  computedUntil: true,
260
261
  processingStarted: true,
261
262
  },
@@ -133,6 +133,7 @@ export declare abstract class CampaignService {
133
133
  endTimestamp: bigint;
134
134
  campaignId: string;
135
135
  CampaignStatus: {
136
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
136
137
  computedUntil: bigint;
137
138
  processingStarted: bigint;
138
139
  }[];
@@ -1,4 +1,5 @@
1
1
  import { apiDbClient } from "../../../utils/prisma";
2
+ import { UserRepository } from "../user/user.repository";
2
3
  export class ComputedValueRepository {
3
4
  static async findCampaignValue(params) {
4
5
  return await apiDbClient.campaignComputedValue.findUnique({
@@ -27,6 +28,8 @@ export class ComputedValueRepository {
27
28
  });
28
29
  }
29
30
  static async upsertUserComputedValues(data) {
31
+ // Make sure user foreign keys exist
32
+ await UserRepository.createMany(data.map(item => ({ address: item.address, tags: [] })));
30
33
  await apiDbClient.$transaction(data.map(item => {
31
34
  return apiDbClient.userComputedValue.upsert({
32
35
  where: {
@@ -1025,6 +1025,7 @@ export declare const v4: Elysia<"/v4", false, {
1025
1025
  endTimestamp: bigint;
1026
1026
  campaignId: string;
1027
1027
  CampaignStatus: {
1028
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
1028
1029
  computedUntil: bigint;
1029
1030
  processingStarted: bigint;
1030
1031
  }[];
@@ -72,13 +72,23 @@ export class StatusRepository {
72
72
  }
73
73
  static async updateProcessing(campaignUnique) {
74
74
  const campaignId = CampaignService.hashId(campaignUnique);
75
+ const now = moment().unix();
75
76
  return await apiDbClient.$transaction([
76
77
  apiDbClient.campaignStatus.findUniqueOrThrow({
77
78
  where: {
78
79
  campaignId,
79
- status: {
80
- not: "PROCESSING",
81
- },
80
+ OR: [
81
+ {
82
+ status: {
83
+ not: "PROCESSING",
84
+ },
85
+ },
86
+ {
87
+ processingStarted: {
88
+ lte: now - 60, // The job wasn't already updated in the last minute
89
+ },
90
+ },
91
+ ],
82
92
  },
83
93
  }),
84
94
  apiDbClient.campaignStatus.update({