Skip to content

Commit

Permalink
feat(hasura): update all foreign key to cascade
Browse files Browse the repository at this point in the history
  • Loading branch information
harisato committed Oct 19, 2023
1 parent a8e2e0d commit 179a670
Show file tree
Hide file tree
Showing 30 changed files with 199 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_wallet" drop constraint "user_wallet_user_id_fkey",
add constraint "user_wallet_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_wallet" drop constraint "user_wallet_user_id_fkey",
add constraint "user_wallet_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest_reward" drop constraint "user_quest_reward_user_quest_id_fkey",
add constraint "user_quest_reward_user_quest_id_fkey"
foreign key ("user_quest_id")
references "public"."user_quest"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest_reward" drop constraint "user_quest_reward_user_quest_id_fkey",
add constraint "user_quest_reward_user_quest_id_fkey"
foreign key ("user_quest_id")
references "public"."user_quest"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_quest_id_fkey",
add constraint "user_quest_quest_id_fkey"
foreign key ("quest_id")
references "public"."quests"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_quest_id_fkey",
add constraint "user_quest_quest_id_fkey"
foreign key ("quest_id")
references "public"."quests"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_repeat_quest_id_fkey",
add constraint "user_quest_repeat_quest_id_fkey"
foreign key ("repeat_quest_id")
references "public"."repeat_quests"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_repeat_quest_id_fkey",
add constraint "user_quest_repeat_quest_id_fkey"
foreign key ("repeat_quest_id")
references "public"."repeat_quests"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_user_id_fkey",
add constraint "user_quest_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_quest" drop constraint "user_quest_user_id_fkey",
add constraint "user_quest_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_level" drop constraint "user_level_user_id_fkey",
add constraint "user_level_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."user_level" drop constraint "user_level_user_id_fkey",
add constraint "user_level_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."subscribers" drop constraint "subscribers_manga_id_fkey",
add constraint "subcribers_manga_id_fkey"
foreign key ("manga_id")
references "public"."manga"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."subscribers" drop constraint "subcribers_manga_id_fkey",
add constraint "subscribers_manga_id_fkey"
foreign key ("manga_id")
references "public"."manga"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."subscribers" drop constraint "subscribers_user_id_fkey",
add constraint "subcribers_user_id_fkey"
foreign key ("manga_id")
references "public"."manga"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."subscribers" drop constraint "subcribers_user_id_fkey",
add constraint "subscribers_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."tag_languages" drop constraint "tag_languages_language_id_fkey",
add constraint "tag_languagues_language_id_fkey"
foreign key ("language_id")
references "public"."languages"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."tag_languages" drop constraint "tag_languagues_language_id_fkey",
add constraint "tag_languages_language_id_fkey"
foreign key ("language_id")
references "public"."languages"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."tag_languages" drop constraint "tag_languages_tag_id_fkey",
add constraint "tag_languagues_tag_id_fkey"
foreign key ("tag_id")
references "public"."tags"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."tag_languages" drop constraint "tag_languagues_tag_id_fkey",
add constraint "tag_languages_tag_id_fkey"
foreign key ("tag_id")
references "public"."tags"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."repeat_quests" drop constraint "repeat_quests_quest_id_fkey",
add constraint "repeat_quests_quest_id_fkey"
foreign key ("quest_id")
references "public"."quests"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."repeat_quests" drop constraint "repeat_quests_quest_id_fkey",
add constraint "repeat_quests_quest_id_fkey"
foreign key ("quest_id")
references "public"."quests"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."quests" drop constraint "quests_campaign_id_fkey",
add constraint "quests_campaign_id_fkey"
foreign key ("campaign_id")
references "public"."campaign"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."quests" drop constraint "quests_campaign_id_fkey",
add constraint "quests_campaign_id_fkey"
foreign key ("campaign_id")
references "public"."campaign"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."likes" drop constraint "likes_user_id_fkey",
add constraint "likes_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."likes" drop constraint "likes_user_id_fkey",
add constraint "likes_user_id_fkey"
foreign key ("user_id")
references "public"."authorizer_users"
("id") on update cascade on delete cascade;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."likes" drop constraint "likes_chapter_id_fkey",
add constraint "likes_chapter_id_fkey"
foreign key ("chapter_id")
references "public"."chapters"
("id") on update restrict on delete restrict;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table "public"."likes" drop constraint "likes_chapter_id_fkey",
add constraint "likes_chapter_id_fkey"
foreign key ("chapter_id")
references "public"."chapters"
("id") on update cascade on delete cascade;
19 changes: 19 additions & 0 deletions src/quest/quest.graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,25 @@ export class QuestGraphql {
private graphqlSvc: GraphqlService
) {}

async getQuestDetail(variables: any) {
const result = await this.graphqlSvc.query(
this.configSvc.get<string>('graphql.endpoint'),
'',
`query quests($id: Int!) {
quests(where: {id: {_eq: $id}, status: {_eq: "Published"}}) {
id
name
status
requirement
}
}`,
'quests',
variables
);

return result.data.quests[0];
}

async getAllCampaignQuest() {
const result = await this.graphqlSvc.query(
this.configSvc.get<string>('graphql.endpoint'),
Expand Down
41 changes: 40 additions & 1 deletion src/quest/quest.service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Injectable, Logger } from '@nestjs/common';
import { Injectable, Logger, NotFoundException } from '@nestjs/common';

import { FilesService } from '../files/files.service';
import { QuestGraphql } from './quest.graphql';
Expand All @@ -14,6 +14,45 @@ export class QuestService {
private userGraphql: UserGraphql
) {}

async get(questId: number, userId?: string) {
const quest = await this.questGraphql.getQuestDetail({
id: questId,
});

if (!quest) throw new NotFoundException();

let reward_status = 0;
if (userId) {
reward_status = await this.checkRewardStatus(quest.requirement, userId);
}
quest.reward_status = reward_status;

return quest;
}

/** Reward status
* 0: Can not claim reward
* 1: Can claim reward
* TODO: 2: Claimed
*/
async checkRewardStatus(requirement: any, userId: string) {
const requirementType = Object.keys(requirement);

if (requirementType.includes('read')) {
// TODO: do something
}

if (requirementType.includes('comment')) {
// do something
const chapterId = requirement.comment.chapter.id;
}

if (requirementType.includes('subscribe')) {
// do something
}
return 0;
}

async upload(file: Express.Multer.File) {
try {
const url = await this.filesService.uploadImageToS3(`nft`, file);
Expand Down

0 comments on commit 179a670

Please sign in to comment.