File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -88,9 +88,7 @@ export class BotOverseer {
8888 return user ! ;
8989 }
9090 @SafeExecution ( )
91- async userInGroup (
92- msg : string = "The user is no longer a member of this group."
93- ) : Promise < boolean | undefined > {
91+ async userInGroup ( msg : string = "The user is no longer a member of this group." ) : Promise < boolean | undefined > {
9492 const id = await this . getRepliedUserId ( ) ;
9593 if ( ! id ) {
9694 await this . ctx . reply (
Original file line number Diff line number Diff line change @@ -4,18 +4,26 @@ import { GroupMembership } from "../../../entities/GroupMembership";
44export class GroupMembershipService extends DatabaseService {
55 private groupMembershipRepo = this . getRepo ( GroupMembership ) ;
66
7- async add ( membership : GroupMembership ) {
8- return this . groupMembershipRepo . save ( membership ) ;
7+ async create ( membership : Partial < GroupMembership > ) : Promise < GroupMembership > {
8+ return this . groupMembershipRepo . create ( membership ) ;
99 }
1010
1111 async getById ( id : number ) {
1212 return this . groupMembershipRepo . findOne ( { where : { id } } ) ;
1313 }
1414
15+ async getGroupAndUserId ( groupId : number , userId : number ) {
16+ return this . groupMembershipRepo . findOne ( {
17+ where : { group : { id : groupId } , user : { id : userId } } ,
18+ } ) ;
19+ }
20+ async save ( membership : Partial < GroupMembership > ) : Promise < GroupMembership > {
21+ return this . groupMembershipRepo . save ( membership ) ;
22+ }
1523 async remove ( id : number ) {
1624 return this . groupMembershipRepo . delete ( { id } ) ;
1725 }
18- async deleteUser ( userId :number ) {
26+ async deleteUser ( userId : number ) {
1927 return this . groupMembershipRepo . delete ( { user : { id : userId } } ) ;
2028 }
2129}
Original file line number Diff line number Diff line change 1+ import { Context } from "grammy" ;
12import { DatabaseService } from ".." ;
23import { GroupSettings } from "../../../entities/GroupSettings" ;
34
@@ -19,4 +20,20 @@ export class GroupSettingsService extends DatabaseService {
1920 async remove ( id : number ) {
2021 return this . groupSettingsRepo . delete ( { id } ) ;
2122 }
23+ async init ( ctx : Context ) {
24+ const chat = ctx . chat ! ;
25+ const from = ctx . from ;
26+ return await this . save (
27+ await this . create ( {
28+ group_id : chat . id ,
29+ group_name : chat . title ,
30+ welcome_message : "" ,
31+ chat_permissions : ( await ctx . api . getChat ( chat . id ) ) . permissions ,
32+ rules : "" ,
33+ description : "" ,
34+ black_list : [ ] ,
35+ added_by_id : from ?. id ,
36+ } )
37+ ) ;
38+ }
2239}
Original file line number Diff line number Diff line change @@ -15,12 +15,8 @@ export class DatabaseService {
1515 }
1616
1717 async initialize ( ) {
18- try {
1918 await this . db . initialize ( ) ;
2019 logger . info ( "Database connection initialized" , "DATABASE" ) ;
21- } catch ( error : any ) {
22- logger . error ( "Error initializing database connection" , error , "DATABASE" ) ;
23- }
2420 }
2521
2622 async close ( ) {
Original file line number Diff line number Diff line change @@ -14,12 +14,18 @@ export class ApprovedUserService extends DatabaseService {
1414 async getById ( id : number ) : Promise < ApprovedUser | null > {
1515 return this . approvedUserRepo . findOne ( { where : { id } } ) ;
1616 }
17- async getByIdAndGroup ( userId : number , groupSettings : GroupSettings ) {
17+ async getByIdAndGroup ( userId : number , groupId : number ) {
1818 return this . approvedUserRepo . findOne ( {
19- where : { user_id : userId , group : groupSettings } ,
19+ where : { user_id : userId , group : { id : groupId } } ,
2020 } ) ;
2121 }
22+ async getByGroup ( groupSettings : GroupSettings ) : Promise < ApprovedUser [ ] > {
23+ return this . approvedUserRepo . find ( {
24+ where : { group : { id : groupSettings . id } } , // Use the ID to filter
25+ relations : [ "group" ] ,
26+ } ) ;
27+ }
2228 async remove ( id : number ) : Promise < void > {
23- await this . approvedUserRepo . delete ( { id } ) ;
29+ await this . approvedUserRepo . delete ( id ) ;
2430 }
2531}
Original file line number Diff line number Diff line change @@ -28,16 +28,14 @@ export class UserService extends DatabaseService {
2828 const chatMember = await ctx . getChatMember ( telegram_id ) ;
2929 const role = chatMember . status ;
3030 let user = await this . getByTelegramId ( telegram_id ) ;
31-
3231 if ( ! user ) {
33- user = await this . userRepo . create ( {
32+ user = this . userRepo . create ( {
3433 telegram_id,
3534 role,
3635 warnings : [ ] ,
3736 } ) ;
3837 await this . userRepo . save ( user ) ;
3938 }
40-
4139 return user ;
4240 }
4341}
Original file line number Diff line number Diff line change @@ -4,21 +4,26 @@ import { Warning } from "../../../entities/Warning";
44
55export class WarningServiceDb extends DatabaseService {
66 private warningRepo = this . getRepo ( Warning ) ;
7+
78 async create ( warning : Partial < Warning > ) : Promise < Warning > {
8- return this . warningRepo . create ( warning ) ;
9+ const newWarning = this . warningRepo . create ( warning ) ;
10+ return this . warningRepo . save ( newWarning ) ;
911 }
12+
1013 async save ( warning : Warning ) {
1114 return this . warningRepo . save ( warning ) ;
1215 }
1316
1417 async getByUserId ( userId : number ) {
1518 return this . warningRepo . find ( { where : { user : { id : userId } } } ) ;
1619 }
20+
1721 async remove ( id : number ) {
1822 return this . warningRepo . delete ( { id } ) ;
1923 }
20- async clear ( user : any ) {
21- return this . warningRepo . delete ( { user } ) ;
24+
25+ async clear ( userId : number ) {
26+ return this . warningRepo . delete ( { user : { id : userId } } ) ;
2227 }
2328
2429 async count ( user : User ) {
You can’t perform that action at this time.
0 commit comments