Skip to content

Commit c7fd26f

Browse files
committed
fix: ♻️ Add SuperAdmin service and update account management to support SuperAdmin role
1 parent 23df8d2 commit c7fd26f

5 files changed

Lines changed: 47 additions & 7 deletions

File tree

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@ PORT=3000
33

44
ENV=DEV #DEV for local, PROD for server
55
DOMAIN=mydomain.example.com
6+
USER_MANAGEMENT_IP="http://127.0.0.1:4000"
7+
AUTHENTICATION_IP="http://127.0.0.1:5000"
68
SALES_SERVICE_BASE_URL=url_sales
79
ANALYTICS_SERVICE_BASE_URL=url_analytics

app/services/account/account.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export class AccountService {
3838
commercial: this.accountManagementService.getCommercialById.bind(this.accountManagementService),
3939
maintainer: this.accountManagementService.getMaintainerById.bind(this.accountManagementService),
4040
admin: this.accountManagementService.getAdminById.bind(this.accountManagementService),
41-
superAdmin: this.accountManagementService.getAdminById.bind(this.accountManagementService)
41+
superAdmin: this.accountManagementService.getSuperAdminById.bind(this.accountManagementService)
4242
};
4343

4444
const getter = getters[role];

app/services/accountManagementService/accountManagement.service.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { CreateCommercialData } from './commercial.service';
1616
import { CreateMaintainerData } from './maintainer.service';
1717
import { CreateAdminData } from './admin.service';
1818
import { CreateHelperRecommendationData } from './helperRecommendation.service';
19+
import { SuperAdminService } from './superAdmin.service';
1920

2021

2122

@@ -28,7 +29,8 @@ import {
2829
CommercialType,
2930
MaintainerType,
3031
AdminType ,
31-
HelperRecommendationType
32+
HelperRecommendationType,
33+
SuperAdminType
3234
} from './types';
3335

3436

@@ -41,6 +43,8 @@ export class AccountManagementService {
4143
private maintainerService: MaintainerService;
4244
private adminService: AdminService;
4345
private helperRecommendationService : HelperRecommendationService;
46+
private superAdminService: SuperAdminService;
47+
4448

4549
constructor() {
4650
this.userService = new UserService();
@@ -51,6 +55,7 @@ export class AccountManagementService {
5155
this.maintainerService = new MaintainerService();
5256
this.adminService = new AdminService();
5357
this.helperRecommendationService=new HelperRecommendationService;
58+
this.superAdminService = new SuperAdminService();
5459
}
5560

5661
// User methods
@@ -228,6 +233,11 @@ export class AccountManagementService {
228233
return this.helperRecommendationService.rejectRecommendation(id,notes);
229234
}
230235

236+
// SuperAdmin methods
237+
async getSuperAdminById(id: string): Promise<SuperAdminType> {
238+
return this.superAdminService.getSuperAdminById(id);
239+
}
240+
231241

232242

233243
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// app/services/superAdminService/superAdmin.service.ts
2+
import { Config } from '../../services.config';
3+
import { SuperAdminType } from './types';
4+
5+
6+
export class SuperAdminService {
7+
private baseUrl: string;
8+
9+
constructor() {
10+
this.baseUrl = Config.getInstance().getUserManagementIP();
11+
}
12+
13+
// GET /superadmins/:id
14+
async getSuperAdminById(id: string): Promise<SuperAdminType> {
15+
const response = await fetch(`${this.baseUrl}/superadmins/${id}`, {
16+
method: 'GET',
17+
headers: { 'Content-Type': 'application/json' }
18+
});
19+
20+
if (!response.ok) {
21+
throw new Error(`Failed to fetch SuperAdmin: ${response.status}`);
22+
}
23+
24+
const payload = await response.json();
25+
return payload.data;
26+
}
27+
}

app/services/accountManagementService/types.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,13 @@ export type UserType = {
101101
privilege: number;
102102
add_by: number;
103103
};
104-
105-
export type SuperAdminType = {
104+
105+
export interface SuperAdminType {
106106
id: number;
107107
first_name: string;
108108
last_name: string;
109109
email: string;
110-
password: string;
111-
phone: string;
112-
};
110+
phone?: string;
111+
created_at: string;
112+
updated_at: string;
113+
}

0 commit comments

Comments
 (0)