From 35b98320ff04336950276b8124fec13f5633631a Mon Sep 17 00:00:00 2001 From: Mohammad Ranjbar Z Date: Thu, 9 May 2024 10:40:07 +0330 Subject: [PATCH 1/3] Consider recurring mini donations ( streams) related to #1483 --- src/givethIoService.ts | 14 ++- src/types/general.ts | 207 +++++++++++++++++++++-------------------- 2 files changed, 120 insertions(+), 101 deletions(-) diff --git a/src/givethIoService.ts b/src/givethIoService.ts index e6c959f..53b350e 100644 --- a/src/givethIoService.ts +++ b/src/givethIoService.ts @@ -101,6 +101,10 @@ export const getEligibleDonations = async ( bottomRankInRound isReferrerGivbackEligible referrerWallet + recurringDonation { + id + txHash + } project { slug verified @@ -206,7 +210,10 @@ export const getEligibleDonations = async ( projectLink: `https://giveth.io/project/${item.project.slug}`, isReferrerGivbackEligible: item.isReferrerGivbackEligible, - referrerWallet: item.referrerWallet + referrerWallet: item.referrerWallet, + + parentRecurringDonationId: item?.recurringDonation?.id, + parentRecurringDonationTxHash: item?.recurringDonation?.txHash } }); @@ -234,7 +241,10 @@ export const getEligibleDonations = async ( projectLink: `https://giveth.io/project/${item.project.slug}`, isReferrerGivbackEligible: item.isReferrerGivbackEligible, - referrerWallet: item.referrerWallet + referrerWallet: item.referrerWallet, + + parentRecurringDonationId: item?.recurringDonation?.id, + parentRecurringDonationTxHash: item?.recurringDonation?.txHash } }); return eligible ? diff --git a/src/types/general.ts b/src/types/general.ts index 74c530c..ffec42a 100644 --- a/src/types/general.ts +++ b/src/types/general.ts @@ -1,124 +1,133 @@ import moment from "moment"; export interface FormattedDonation { - amount: string, - currency: string, - createdAt: string, - valueUsd: number, - givbackFactor: number, - projectRank ?: number, - bottomRankInRound ?: number, - givbacksRound ?: number, - giverAddress: string, - txHash: string, - network: string, - source: string, - giverName: string - giverEmail?: string, - projectLink?: string, - niceTokens?: string, - info?: string, - - isReferrerGivbackEligible ?:boolean, - referrerWallet ?:string - referrer ?: boolean, - referred ?: boolean + amount: string, + currency: string, + createdAt: string, + valueUsd: number, + givbackFactor: number, + projectRank?: number, + bottomRankInRound?: number, + givbacksRound?: number, + giverAddress: string, + txHash: string, + network: string, + source: string, + giverName: string + giverEmail?: string, + projectLink?: string, + niceTokens?: string, + info?: string, + + isReferrerGivbackEligible?: boolean, + referrerWallet?: string + referrer?: boolean, + referred?: boolean, + parentRecurringDonationId?: string, + parentRecurringDonationTxHash?: string, + + } export interface GivethIoDonation { - amount: string, - currency: string, - createdAt: string, - valueUsd: number, - givbackFactor: number, - projectRank ?: number, - powerRound ?: number, - bottomRankInRound ?: number, - giverAddress: string, - transactionId: string, - transactionNetworkId: number, - fromWalletAddress: string, - toWalletAddress: string - chainType: string - source: string, - user: { - name: string, - email: string - } - project: { - slug: string - listed: boolean, - verified: boolean, - projectPower: { - powerRank: number - } + amount: string, + currency: string, + createdAt: string, + valueUsd: number, + givbackFactor: number, + projectRank?: number, + powerRound?: number, + bottomRankInRound?: number, + giverAddress: string, + transactionId: string, + transactionNetworkId: number, + fromWalletAddress: string, + toWalletAddress: string + chainType: string + source: string, + user: { + name: string, + email: string + } + + recurringDonation ?: { + id: string, + txHash: string + } + project: { + slug: string + listed: boolean, + verified: boolean, + projectPower: { + powerRank: number } + } - // giverName: string - // giverEmail: string, - status: string, - isProjectVerified: boolean, - isReferrerGivbackEligible ?:boolean, - referrerWallet ?:string + // giverName: string + // giverEmail: string, + status: string, + isProjectVerified: boolean, + isReferrerGivbackEligible?: boolean, + referrerWallet?: string } export interface DonationResponse { - giverAddress: string, - giverEmail: string, - giverName: string, - totalDonationsUsdValue?: number, - totalDonationsUsdValueAfterGivFactor: number, - givback: number, - givbackUsdValue?: string, - share: number, - niceEarned?: number - - totalReferralDeductedUsdValue?: number - totalReferralDeductedUsdValueAfterGivFactor?: number - - totalReferralAddedUsdValue?: number - totalReferralAddedUsdValueAfterGivFactor?: number + giverAddress: string, + giverEmail: string, + giverName: string, + totalDonationsUsdValue?: number, + totalDonationsUsdValueAfterGivFactor: number, + givback: number, + givbackUsdValue?: string, + share: number, + niceEarned?: number + + totalReferralDeductedUsdValue?: number + totalReferralDeductedUsdValueAfterGivFactor?: number + + totalReferralAddedUsdValue?: number + totalReferralAddedUsdValueAfterGivFactor?: number } export interface MinimalDonation { - giverAddress: string, - giverEmail: string, - giverName: string, - valueUsd: string, - niceTokens?: number, - share?: number, - totalDonationsUsdValue: number - totalDonationsUsdValueAfterGivFactor: number - - totalReferralDeductedUsdValue?: number - totalReferralDeductedUsdValueAfterGivFactor?: number - - totalReferralAddedUsdValue?: number - totalReferralAddedUsdValueAfterGivFactor?: number + giverAddress: string, + giverEmail: string, + giverName: string, + valueUsd: string, + niceTokens?: number, + share?: number, + totalDonationsUsdValue: number + totalDonationsUsdValueAfterGivFactor: number + + totalReferralDeductedUsdValue?: number + totalReferralDeductedUsdValueAfterGivFactor?: number + + totalReferralAddedUsdValue?: number + totalReferralAddedUsdValueAfterGivFactor?: number } export interface GivbackFactorParams { - topPowerRank: number; - minimumFactor: number; - maximumFactor: number; + topPowerRank: number; + minimumFactor: number; + maximumFactor: number; } export interface Project { - id: string, - title: string, - slug: string, - verified: boolean, - link ?: string, - projectPower: { - totalPower: number, - powerRank: number, - round: number - } + id: string, + title: string, + slug: string, + verified: boolean, + link?: string, + projectPower: { + totalPower: number, + powerRank: number, + round: number + } } export interface GIVbacksRound { - round: number, - start: string, - end: string + round: number, + start: string, + end: string } From 482f888e0a091ddfd63b175091936c5494be4af3 Mon Sep 17 00:00:00 2001 From: Mohammad Ranjbar Z Date: Thu, 9 May 2024 10:57:33 +0330 Subject: [PATCH 2/3] Fix dependency versions --- package-lock.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7f1aa4..d1e9df0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "graphql-request": "^3.5.0", "json2csv": "^5.0.6", "moment": "^2.29.1", - "swagger-ui-express": "^4.1.6", + "swagger-ui-express": "4.1.6", "ts-node-dev": "^2.0.0", "typescript": "^4.5.2", "underscore": "^1.13.1", @@ -6208,22 +6208,22 @@ } }, "node_modules/swagger-ui-dist": { - "version": "5.11.7", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.11.7.tgz", - "integrity": "sha512-8xqfJFRVEEU3Zxe8vQvC4g827lDOqV9haougR3tnlgF/PkDN//9Y6kGV9qsT0A9vawlbdF8dF/R6HrlDyHvbEQ==" + "version": "3.52.5", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.5.tgz", + "integrity": "sha512-8z18eX8G/jbTXYzyNIaobrnD7PSN7yU/YkSasMmajrXtw0FGS64XjrKn5v37d36qmU3o1xLeuYnktshRr7uIFw==" }, "node_modules/swagger-ui-express": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.3.tgz", - "integrity": "sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.1.6.tgz", + "integrity": "sha512-Xs2BGGudvDBtL7RXcYtNvHsFtP1DBFPMJFRxHe5ez/VG/rzVOEjazJOOSc/kSCyxreCTKfJrII6MJlL9a6t8vw==", "dependencies": { - "swagger-ui-dist": ">=4.11.0" + "swagger-ui-dist": "^3.18.1" }, "engines": { "node": ">= v0.10.32" }, "peerDependencies": { - "express": ">=4.0.0 || >=5.0.0-beta" + "express": ">=4.0.0" } }, "node_modules/swarm-js": { @@ -12181,16 +12181,16 @@ } }, "swagger-ui-dist": { - "version": "5.11.7", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.11.7.tgz", - "integrity": "sha512-8xqfJFRVEEU3Zxe8vQvC4g827lDOqV9haougR3tnlgF/PkDN//9Y6kGV9qsT0A9vawlbdF8dF/R6HrlDyHvbEQ==" + "version": "3.52.5", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.5.tgz", + "integrity": "sha512-8z18eX8G/jbTXYzyNIaobrnD7PSN7yU/YkSasMmajrXtw0FGS64XjrKn5v37d36qmU3o1xLeuYnktshRr7uIFw==" }, "swagger-ui-express": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.3.tgz", - "integrity": "sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.1.6.tgz", + "integrity": "sha512-Xs2BGGudvDBtL7RXcYtNvHsFtP1DBFPMJFRxHe5ez/VG/rzVOEjazJOOSc/kSCyxreCTKfJrII6MJlL9a6t8vw==", "requires": { - "swagger-ui-dist": ">=4.11.0" + "swagger-ui-dist": "^3.18.1" } }, "swarm-js": { From d1c286ce48fdd64cd6d4826c99da80f3f4ea23e4 Mon Sep 17 00:00:00 2001 From: Mohammad Ranjbar Z Date: Mon, 20 May 2024 16:57:47 +0330 Subject: [PATCH 3/3] Remove swagger prefix from staging ENV --- src/index.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 8f45a4c..ca89d71 100644 --- a/src/index.ts +++ b/src/index.ts @@ -45,10 +45,13 @@ const {version} = require('../package.json'); const app = express(); swaggerDocument.info.version = version -swaggerDocument.basePath = process.env.NODE_ENV === 'staging' ? '/staging' : '/' -const swaggerPrefix = process.env.NODE_ENV === 'staging' ? '/staging' : '' + +// swaggerDocument.basePath = process.env.NODE_ENV === 'staging' ? '/staging' : '/' +// const swaggerPrefix = process.env.NODE_ENV === 'staging' ? '/staging' : '' // https://stackoverflow.com/a/58052537/4650625 -app.use(`${swaggerPrefix}/api-docs`, swaggerUi.serve, swaggerUi.setup(swaggerDocument)); +// app.use(`${swaggerPrefix}/api-docs`, swaggerUi.serve, swaggerUi.setup(swaggerDocument)); + +app.use(`/api-docs`, swaggerUi.serve, swaggerUi.setup(swaggerDocument)); app.get(`/calculate`, async (req: Request, res: Response) => {