Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
I
init-things
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
init-things
Commits
97c94e49
Commit
97c94e49
authored
Nov 25, 2021
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
52eb78dc
Pipeline
#7153
passed with stages
in 1 minute and 11 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
8 deletions
+19
-8
things/nest-typeorm/src/crud-base/crud-base.ts
things/nest-typeorm/src/crud-base/crud-base.ts
+19
-8
No files found.
things/nest-typeorm/src/crud-base/crud-base.ts
View file @
97c94e49
import
{
ConsoleLogger
}
from
'
@nestjs/common
'
;
import
{
ClassConstructor
}
from
'
class-transformer
'
;
import
{
DeleteResult
,
IsNull
,
Not
,
Repository
,
...
...
@@ -44,12 +45,12 @@ export class CrudBase<
const
repo
=
mdb
.
getRepository
(
this
.
entityClass
);
if
(
ent
.
id
!=
null
)
{
const
existingEnt
=
await
repo
.
findOne
({
where
:
{
id
:
ent
.
id
,
deleteTime
:
Not
(
IsNull
())
},
select
:
[
'
id
'
],
where
:
{
id
:
ent
.
id
},
select
:
[
'
id
'
,
'
deleteTime
'
],
withDeleted
:
true
,
});
if
(
existingEnt
)
{
if
(
existingEnt
)
{
if
(
existingEnt
.
deleteTime
)
{
await
repo
.
delete
(
existingEnt
.
id
);
}
else
{
throw
new
BlankReturnMessageDto
(
...
...
@@ -95,12 +96,16 @@ export class CrudBase<
return
this
.
repo
.
createQueryBuilder
(
this
.
entityAliasName
);
}
async
findOne
(
id
:
EntityId
<
T
>
)
{
async
findOne
(
id
:
EntityId
<
T
>
,
extraQuery
:
(
qb
:
SelectQueryBuilder
<
T
>
)
=>
void
=
()
=>
{},
)
{
const
query
=
this
.
queryBuilder
()
.
where
(
`
${
this
.
entityAliasName
}
.id = :id`
,
{
id
})
.
take
(
1
);
this
.
applyRelationsToQuery
(
query
);
this
.
extraGetQuery
(
query
);
extraQuery
(
query
);
let
ent
:
T
;
try
{
ent
=
await
query
.
getOne
();
...
...
@@ -119,13 +124,17 @@ export class CrudBase<
return
new
ReturnMessageDto
(
200
,
'
success
'
,
ent
);
}
async
findAll
(
ent
?:
T
)
{
async
findAll
(
ent
?:
T
,
extraQuery
:
(
qb
:
SelectQueryBuilder
<
T
>
)
=>
void
=
()
=>
{},
)
{
const
query
=
this
.
queryBuilder
();
if
(
ent
)
{
ent
.
applyQuery
(
query
,
this
.
entityAliasName
);
}
this
.
applyRelationsToQuery
(
query
);
this
.
extraGetQuery
(
query
);
extraQuery
(
query
);
try
{
return
new
ReturnMessageDto
(
200
,
'
success
'
,
await
query
.
getMany
());
}
catch
(
e
)
{
...
...
@@ -157,10 +166,12 @@ export class CrudBase<
return
new
BlankReturnMessageDto
(
200
,
'
success
'
);
}
async
remove
(
id
:
EntityId
<
T
>
)
{
let
result
:
UpdateResult
;
async
remove
(
id
:
EntityId
<
T
>
,
hardDelete
=
false
)
{
let
result
:
UpdateResult
|
DeleteResult
;
try
{
result
=
await
this
.
repo
.
softDelete
(
id
);
result
=
await
(
hardDelete
?
this
.
repo
.
delete
(
id
)
:
this
.
repo
.
softDelete
(
id
));
}
catch
(
e
)
{
this
.
error
(
`Failed to delete entity ID
${
id
}
:
${
e
.
toString
()}
`
);
throw
new
BlankReturnMessageDto
(
500
,
'
internal error
'
).
toException
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment