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
ebe91c82
Commit
ebe91c82
authored
Nov 17, 2021
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
create existing logic
parent
91960695
Pipeline
#6880
passed with stages
in 1 minute and 35 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
10 deletions
+31
-10
things/nest-typeorm/src/crud-base/crud-base.ts
things/nest-typeorm/src/crud-base/crud-base.ts
+31
-10
No files found.
things/nest-typeorm/src/crud-base/crud-base.ts
View file @
ebe91c82
...
...
@@ -34,15 +34,35 @@ export class CrudBase<
}
async
create
(
ent
:
T
)
{
try
{
const
savedEntity
=
await
this
.
repo
.
save
(
ent
);
return
new
ReturnMessageDto
(
201
,
'
success
'
,
savedEntity
);
}
catch
(
e
)
{
this
.
error
(
`Failed to create entity
${
JSON
.
stringify
(
ent
)}
:
${
e
.
toString
()}
`
,
);
throw
new
BlankReturnMessageDto
(
500
,
'
internal error
'
).
toException
();
}
const
savedEnt
=
await
this
.
repo
.
manager
.
transaction
(
async
(
mdb
)
=>
{
const
repo
=
mdb
.
getRepository
(
this
.
entityClass
);
if
(
ent
.
id
!=
null
)
{
const
existingEnt
=
await
repo
.
findOne
({
where
:
{
id
:
ent
.
id
},
take
:
1
,
select
:
[
'
id
'
,
'
isDeleted
'
],
});
if
(
existingEnt
)
{
if
(
existingEnt
.
isDeleted
)
{
await
repo
.
delete
({
id
:
ent
.
id
});
}
else
{
throw
new
BlankReturnMessageDto
(
404
,
'
already exists
'
,
).
toException
();
}
}
}
try
{
return
await
repo
.
save
(
ent
);
}
catch
(
e
)
{
this
.
error
(
`Failed to create entity
${
JSON
.
stringify
(
ent
)}
:
${
e
.
toString
()}
`
,
);
throw
new
BlankReturnMessageDto
(
500
,
'
internal error
'
).
toException
();
}
});
return
new
ReturnMessageDto
(
201
,
'
success
'
,
savedEnt
);
}
protected
get
entityAliasName
()
{
...
...
@@ -76,7 +96,8 @@ export class CrudBase<
async
findOne
(
id
:
EntityId
<
T
>
)
{
const
query
=
this
.
queryBuilder
()
.
where
(
`
${
this
.
entityAliasName
}
.id = :id`
,
{
id
})
.
andWhere
(
`
${
this
.
entityAliasName
}
.isDeleted = false`
);
.
andWhere
(
`
${
this
.
entityAliasName
}
.isDeleted = false`
)
.
take
(
1
);
this
.
applyRelationsToQuery
(
query
);
this
.
extraGetQuery
(
query
);
try
{
...
...
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