Skip to content

Commit

Permalink
update db service object, add db user service object
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Werfling committed Jul 31, 2023
1 parent cd5ad78 commit 287b1d3
Show file tree
Hide file tree
Showing 26 changed files with 207 additions and 208 deletions.
10 changes: 5 additions & 5 deletions backend/src/Routes/Main/Domain/Delete.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DBHelper, DomainRecordDB, DomainService} from 'flyingfish_core';
import {DBHelper, DomainRecordDB, DomainServiceDB} from 'flyingfish_core';
import {DomainDelete, DomainDeleteResponse, StatusCodes} from 'flyingfish_schemas';
import {NginxHttp as NginxHttpDB} from '../../../inc/Db/MariaDb/Entity/NginxHttp.js';
import {NginxStream as NginxStreamDB} from '../../../inc/Db/MariaDb/Entity/NginxStream.js';
Expand All @@ -17,7 +17,7 @@ export class Delete {
const streamRepository = DBHelper.getRepository(NginxStreamDB);
const httpRepository = DBHelper.getRepository(NginxHttpDB);

const domain = await DomainService.findOne(data.id);
const domain = await DomainServiceDB.getInstance().findOne(data.id);

if (domain) {
if (domain.fixdomain) {
Expand Down Expand Up @@ -50,14 +50,14 @@ export class Delete {
domain_id: data.id
});

const result = await DomainService.remove(domain.id);
const result = await DomainServiceDB.getInstance().remove(domain.id);

if (result) {
if (domain.parent_id !== 0) {
const parent = await DomainService.findOne(domain.parent_id);
const parent = await DomainServiceDB.getInstance().findOne(domain.parent_id);

if (parent) {
await DomainService.updateChildrenToNewParent(parent);
await DomainServiceDB.getInstance().updateChildrenToNewParent(parent);
}
}

Expand Down
4 changes: 2 additions & 2 deletions backend/src/Routes/Main/Domain/List.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DBHelper, DomainRecordDB, DomainService} from 'flyingfish_core';
import {DBHelper, DomainRecordDB, DomainServiceDB} from 'flyingfish_core';
import {DomainData, DomainRecord, DomainResponse, StatusCodes} from 'flyingfish_schemas';

/**
Expand All @@ -13,7 +13,7 @@ export class List {
const domainRecordRepository = DBHelper.getRepository(DomainRecordDB);

const domainList: DomainData[] = [];
const domains = await DomainService.findAll();
const domains = await DomainServiceDB.getInstance().findAll();

for await (const domain of domains) {
const recordList: DomainRecord[] = [];
Expand Down
10 changes: 5 additions & 5 deletions backend/src/Routes/Main/Domain/Save.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DomainDB, DomainService} from 'flyingfish_core';
import {DomainDB, DomainServiceDB} from 'flyingfish_core';
import {DomainData, DomainSaveResponse, StatusCodes} from 'flyingfish_schemas';

/**
Expand All @@ -14,7 +14,7 @@ export class Save {
let aDomain: DomainDB | null = null;

if (data.id !== 0) {
const tDomain = await DomainService.findOne(data.id);
const tDomain = await DomainServiceDB.getInstance().findOne(data.id);

if (tDomain) {
if (tDomain.fixdomain) {
Expand All @@ -39,12 +39,12 @@ export class Save {

aDomain.domainname = data.name;
aDomain.disable = data.disable;
aDomain.parent_id = await DomainService.findParentId(data.name);
aDomain.parent_id = await DomainServiceDB.getInstance().findParentId(data.name);

aDomain = await DomainService.save(aDomain);
aDomain = await DomainServiceDB.getInstance().save(aDomain);

if (aDomain.parent_id !== 0) {
await DomainService.updateChildrenToNewParent(aDomain);
await DomainServiceDB.getInstance().updateChildrenToNewParent(aDomain);
}

return {
Expand Down
4 changes: 2 additions & 2 deletions backend/src/Routes/Main/DynDnsClient/List.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DBHelper, DomainService} from 'flyingfish_core';
import {DBHelper, DomainServiceDB} from 'flyingfish_core';
import {
DynDnsClientData,
DynDnsClientDomain,
Expand Down Expand Up @@ -45,7 +45,7 @@ export class List {

if (domainList) {
for await (const domain of domainList) {
const tdomain = await DomainService.findOne(domain.domain_id);
const tdomain = await DomainServiceDB.getInstance().findOne(domain.domain_id);

if (tdomain) {
domains.push({
Expand Down
7 changes: 5 additions & 2 deletions backend/src/Routes/Main/DynDnsServer/List.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
import {DynDnsServerUserService} from 'flyingfish_core';
import {DynDnsServerUserServiceDB} from 'flyingfish_core';
import {DynDnsServerData, DynDnsServerListResponse, StatusCodes} from 'flyingfish_schemas';

/**
* List
*/
export class List {

/**
* getList
*/
public static async getList(): Promise<DynDnsServerListResponse> {
const users = await DynDnsServerUserService.findAll();
const users = await DynDnsServerUserServiceDB.getInstance().findAll();

const list: DynDnsServerData[] = [];

Expand Down
11 changes: 2 additions & 9 deletions backend/src/Routes/Main/Login/Login.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {DBHelper, Logger} from 'flyingfish_core';
import {Logger, UserServiceDB} from 'flyingfish_core';
import {DefaultReturn, LoginRequest, SessionData, StatusCodes} from 'flyingfish_schemas';
import {User as UserDB} from '../../../inc/Db/MariaDb/Entity/User.js';
import * as bcrypt from 'bcrypt';

/**
Expand All @@ -14,13 +13,7 @@ export class Login {
* @param login
*/
public static async login(session: SessionData, login: LoginRequest): Promise<DefaultReturn> {
const userRepository = DBHelper.getDataSource().getRepository(UserDB);

const user = await userRepository.findOne({
where: {
email: login.email
}
});
const user = await UserServiceDB.getInstance().findOneByEmail(login.email);

session.user = {
isLogin: false,
Expand Down
4 changes: 2 additions & 2 deletions backend/src/Routes/Main/Route/List.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DBHelper, DomainService, SshPortDB, SshUserDB} from 'flyingfish_core';
import {DBHelper, DomainServiceDB, SshPortDB, SshUserDB} from 'flyingfish_core';
import {
Location,
RouteData,
Expand Down Expand Up @@ -38,7 +38,7 @@ export class List {
const locationRepository = DBHelper.getRepository(NginxLocationDB);
const sshportRepository = DBHelper.getRepository(SshPortDB);
const sshuserRepository = DBHelper.getRepository(SshUserDB);
const domains = await DomainService.findAll();
const domains = await DomainServiceDB.getInstance().findAll();

if (domains) {
for await (const adomain of domains) {
Expand Down
4 changes: 2 additions & 2 deletions backend/src/Routes/Main/Ssl/Details.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {DBHelper, DomainService} from 'flyingfish_core';
import {DBHelper, DomainServiceDB} from 'flyingfish_core';
import {SslDetailInfoData, SslDetailsRequest, SslDetailsResponse, StatusCodes} from 'flyingfish_schemas';
import Path from 'path';
import {Certificate} from '../../../inc/Cert/Certificate.js';
Expand Down Expand Up @@ -31,7 +31,7 @@ export class Details {
};
}

const domain = await DomainService.findOne(http.domain_id);
const domain = await DomainServiceDB.getInstance().findOne(http.domain_id);

if (domain) {
const sslCert = await Certbot.existCertificate(domain.domainname);
Expand Down
2 changes: 1 addition & 1 deletion backend/src/Routes/Main/User.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class User extends DefaultRoute {
'/json/user/info',
async(req, res) => {
if (this.isUserLogin(req, res)) {
res.status(200).json(await Info.getUserInfo(req));
res.status(200).json(await Info.getUserInfo(req.session));
}
}
);
Expand Down
13 changes: 3 additions & 10 deletions backend/src/Routes/Main/User/Delete.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {DBHelper} from 'flyingfish_core';
import {UserServiceDB} from 'flyingfish_core';
import {DefaultReturn, StatusCodes, UserDeleteRequest} from 'flyingfish_schemas';
import {User as UserDB} from '../../../inc/Db/MariaDb/Entity/User.js';

/**
* Delete
Expand All @@ -12,13 +11,9 @@ export class Delete {
* @param data
*/
public static async deleteUser(data: UserDeleteRequest): Promise<DefaultReturn> {
const userRepository = DBHelper.getDataSource().getRepository(UserDB);

// check is the last user ----------------------------------------------------------------------------------

const cUsers = await userRepository.countBy({
disable: false
});
const cUsers = await UserServiceDB.getInstance().countDisable(false);

if (cUsers < 2) {
return {
Expand All @@ -29,9 +24,7 @@ export class Delete {

// delete --------------------------------------------------------------------------------------------------

const result = await userRepository.delete({
id: data.id
});
const result = await UserServiceDB.getInstance().remove(data.id);

if (result) {
return {
Expand Down
42 changes: 17 additions & 25 deletions backend/src/Routes/Main/User/Info.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import {DBHelper} from 'flyingfish_core';
import {StatusCodes, UserInfoResponse} from 'flyingfish_schemas';
import {User as UserDB} from '../../../inc/Db/MariaDb/Entity/User.js';
import {Request} from 'express';
import {UserServiceDB} from 'flyingfish_core';
import {SessionData, StatusCodes, UserInfoResponse} from 'flyingfish_schemas';

/**
* Info
Expand All @@ -11,29 +9,23 @@ export class Info {
/**
* getUserInfo
*/
public static async getUserInfo(req: Request): Promise<UserInfoResponse> {
const userRepository = DBHelper.getDataSource().getRepository(UserDB);
// @ts-ignore
const userid = req.session.user.userid;
public static async getUserInfo(session: SessionData): Promise<UserInfoResponse> {
if (session.user) {
const user = await UserServiceDB.getInstance().findOne(session.user.userid);

const user = await userRepository.findOne({
where: {
id: userid
}
});

if (user) {
return {
statusCode: StatusCodes.OK,
data: {
islogin: true,
user: {
id: user.id,
username: user.username,
email: user.email
if (user) {
return {
statusCode: StatusCodes.OK,
data: {
islogin: true,
user: {
id: user.id,
username: user.username,
email: user.email
}
}
}
};
};
}
}

return {
Expand Down
7 changes: 2 additions & 5 deletions backend/src/Routes/Main/User/List.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import {DBHelper} from 'flyingfish_core';
import {UserServiceDB} from 'flyingfish_core';
import {StatusCodes, UserEntry, UserListResponse} from 'flyingfish_schemas';
import {User as UserDB} from '../../../inc/Db/MariaDb/Entity/User.js';

/**
* List
Expand All @@ -11,9 +10,7 @@ export class List {
* getUserList
*/
public static async getUserList(): Promise<UserListResponse> {
const userRepository = DBHelper.getDataSource().getRepository(UserDB);

const entries = await userRepository.find();
const entries = await UserServiceDB.getInstance().findAll();

const userList: UserEntry[] = [];

Expand Down
32 changes: 9 additions & 23 deletions backend/src/Routes/Main/User/Save.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import {DBHelper} from 'flyingfish_core';
import {UserDB, UserServiceDB} from 'flyingfish_core';
import {DefaultReturn, StatusCodes, UserEntry} from 'flyingfish_schemas';
import {Not} from 'typeorm';
import * as bcrypt from 'bcrypt';
import {User as UserDB} from '../../../inc/Db/MariaDb/Entity/User.js';

/**
* Save
Expand All @@ -14,14 +12,12 @@ export class Save {
* @param data
*/
public static async saveUser(data: UserEntry): Promise<DefaultReturn> {
const userRepository = DBHelper.getDataSource().getRepository(UserDB);
const us = UserServiceDB.getInstance();

// check is the last user ----------------------------------------------------------------------------------

if (data.disable) {
const cUsers = await userRepository.countBy({
disable: false
});
const cUsers = await us.countDisable(false);

if (cUsers < 2) {
return {
Expand All @@ -33,12 +29,9 @@ export class Save {

// check username ------------------------------------------------------------------------------------------

const cUsername = await userRepository.countBy({
username: data.username,
id: Not(data.id)
});
const existUsername = await us.existUsername(data.username, data.id);

if (cUsername > 0) {
if (existUsername) {
return {
statusCode: StatusCodes.INTERNAL_ERROR,
msg: 'Username already in use!'
Expand All @@ -47,12 +40,9 @@ export class Save {

// check email ---------------------------------------------------------------------------------------------

const cEmail = await userRepository.countBy({
email: data.email,
id: Not(data.id)
});
const existEmail = await us.existEmail(data.email, data.id);

if (cEmail > 0) {
if (existEmail) {
return {
statusCode: StatusCodes.INTERNAL_ERROR,
msg: 'EMail already in use!'
Expand All @@ -64,11 +54,7 @@ export class Save {
let aUser: UserDB|null = null;

if (data.id !== 0) {
aUser = await userRepository.findOne({
where: {
id: data.id
}
});
aUser = await us.findOne(data.id);
}

if (aUser === null) {
Expand Down Expand Up @@ -97,7 +83,7 @@ export class Save {
aUser.email = data.email;
aUser.disable = data.disable;

await DBHelper.getDataSource().manager.save(aUser);
await us.save(aUser);

return {
statusCode: StatusCodes.OK
Expand Down
Loading

0 comments on commit 287b1d3

Please sign in to comment.