Inject
TSXinject
1import {
2 ContainerRegistryManager,
3 UserService,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class MyPluginService {
10 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private userService: UserService;
12}Lookup method များ
Plugin မှ user ဇယားကို ပြန်မ query ဘဲ user များကို ဤ method များဖြင့် resolve လုပ်ရပါသည်။
- findById(id: string) — string id ဖြင့် user ရှာဖွေပါသည်
- findByUserId(id: number, includePassword = false) — numeric id; password စစ်မှသာ includePassword သုံးရပါသည်
- findByIds(ids: number[]) — အစုလိုက် ရှာဖွေမှု
- findByUsername(username, includePassword = false) — login name ဖြင့် ရှာဖွေပါသည်
- find({ skip, limit, search }) — စာမျက်နှာခွဲ စာရင်း; search သည် name/username နှင့် ကိုက်ညီပါသည်
TSXlookup
1import {
2 ContainerRegistryManager,
3 Inject,
4 Service,
5 UserService,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class OrderAssignService {
10 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private userService: UserService;
12
13 async resolveAssignee(userId: number) {
14 const user = await this.userService.findByUserId(userId);
15 if (!user) throw new Error("User not found");
16 return user;
17 }
18
19 async searchStaff(q: string) {
20 return this.userService.find({ skip: 0, limit: 20, search: q });
21 }
22}Create / update method များ
- create(user: CreateUserDto) — user ဖန်တီးပါသည်
- update(id, data) — user အကွက်များကို patch လုပ်ပါသည်
- setActive(userId, flag) — account ကို enable/disable လုပ်ပါသည်
- changePassword(data) — လက်ရှိ password စစ်ပြီး ပြောင်းပါသည်
- resetPassword(data) — admin/reset flow ဖြင့် password reset လုပ်ပါသည်
TSXcreate
1import {
2 ContainerRegistryManager,
3 Inject,
4 Service,
5 UserService,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class StaffOnboardService {
10 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private userService: UserService;
12
13 async onboard() {
14 await this.userService.create({
15 username: "cashier01",
16 name: "Cashier One",
17 password: "temporary-password",
18 roleId: 2,
19 isOwner: false,
20 });
21 }
22}Auth & session method များ
Token ကို ကိုယ်တိုင် မထုတ်ဘဲ ဤ method များကို အသုံးပြုရပါသည်။
- signin({ username, password }, info?) — access/refresh token ပြန်ပေးပါသည်
- refreshToken(refreshToken) — refresh token မှ access token အသစ် ရယူပါသည်
- checkToken(refreshToken) — refresh token သက်တမ်းရှိ/မရှိ စစ်ဆေးပါသည်
- signout(refreshToken) — session တစ်ခု ပယ်ဖျက်ပါသည်
- getLoginDevices(...) — အသက်ဝင်နေသော device/session စာရင်း
- logoutOtherDevice(ids) — ရွေးထားသော device session များကို revoke လုပ်ပါသည်
- logoutAllDevices(userId) — user ၏ session အားလုံးကို revoke လုပ်ပါသည်
TSXsignin
1import {
2 ContainerRegistryManager,
3 Inject,
4 Service,
5 UserService,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class AuthFacadeService {
10 @Inject(UserService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private userService: UserService;
12
13 async login(username: string, password: string) {
14 return this.userService.signin(
15 { username, password },
16 { ipAddress: "127.0.0.1", device: "web" }
17 );
18 }
19
20 async logoutEverywhere(userId: number) {
21 await this.userService.logoutAllDevices(userId);
22 }
23}