Skip to content

Commit cccba37

Browse files
authored
feat: Add new campaign states (#672)
* chore: Cleanup unused campaign states * feat: Add new campaign statuses * campaigns: List all campaigns except drafts and deleted * Create new migration file with state deleted We have soft deleted campaigns * schema.prisma: Remove redundent enum value from personrelation
1 parent 449602e commit cccba37

File tree

4 files changed

+27
-21
lines changed

4 files changed

+27
-21
lines changed

apps/api/src/campaign/campaign.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class CampaignService {
6767
orderBy: {
6868
endDate: 'asc',
6969
},
70-
where: { state: { in: [CampaignState.active, CampaignState.complete] } },
70+
where: { NOT: { state: { in: [CampaignState.draft, CampaignState.deleted] } } },
7171
...CampaignListItemSelect,
7272
})
7373
const campaignSums = await this.getCampaignSums()
@@ -81,7 +81,7 @@ export class CampaignService {
8181

8282
async listAllCampaigns(): Promise<AdminCampaignListItem[]> {
8383
const campaigns = await this.prisma.campaign.findMany({
84-
where: { NOT: { state: { in: [CampaignState.deleted] } } },
84+
where: { NOT: { state: { in: [CampaignState.draft] } } },
8585
orderBy: {
8686
updatedAt: 'desc',
8787
},
@@ -611,7 +611,7 @@ export class CampaignService {
611611
}
612612

613613
async canAcceptDonations(campaign: Campaign): Promise<boolean> {
614-
const validStates: CampaignState[] = [CampaignState.active, CampaignState.approved]
614+
const validStates: CampaignState[] = [CampaignState.active]
615615
if (campaign.allowDonationOnComplete) {
616616
validStates.push(CampaignState.complete)
617617
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
Warnings:
3+
4+
- The values [initial,pending_validation,approved,rejected,active_pending_validation,disabled,error] on the enum `campaign_state` will be removed. If these variants are still used in the database, this will fail.
5+
6+
*/
7+
-- AlterEnum
8+
BEGIN;
9+
CREATE TYPE "campaign_state_new" AS ENUM ('draft', 'active', 'complete', 'partially_financed', 'paused', 'suspended', 'blocked', 'deleted');
10+
ALTER TABLE "campaigns" ALTER COLUMN "state" DROP DEFAULT;
11+
ALTER TABLE "campaigns" ALTER COLUMN "state" TYPE "campaign_state_new" USING ("state"::text::"campaign_state_new");
12+
ALTER TYPE "campaign_state" RENAME TO "campaign_state_old";
13+
ALTER TYPE "campaign_state_new" RENAME TO "campaign_state";
14+
DROP TYPE "campaign_state_old";
15+
ALTER TABLE "campaigns" ALTER COLUMN "state" SET DEFAULT 'draft';
16+
COMMIT;

podkrepi.dbml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -642,17 +642,13 @@ Enum PersonRelation {
642642
}
643643

644644
Enum CampaignState {
645-
initial
646645
draft
647-
pending_validation
648-
approved
649-
rejected
650646
active
651-
active_pending_validation
652-
suspended
653647
complete
654-
disabled
655-
error
648+
partially_financed
649+
paused
650+
suspended
651+
blocked
656652
deleted
657653
}
658654

schema.prisma

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -725,24 +725,18 @@ enum PersonRelation {
725725
colleague
726726
myself
727727
myorg
728-
729728
@@map("person_relation")
730729
}
731730

732731
enum CampaignState {
733-
initial
734732
draft
735-
pending_validation
736-
approved
737-
rejected
738733
active
739-
active_pending_validation
740-
suspended
741734
complete
742-
disabled
743-
error
735+
partially_financed
736+
paused
737+
suspended
738+
blocked
744739
deleted
745-
746740
@@map("campaign_state")
747741
}
748742

0 commit comments

Comments
 (0)