Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Aplicativo “Eu luto”
backend
Commits
1b5d71f4
Commit
1b5d71f4
authored
1 year ago
by
Cassius de Ávila
Browse files
Options
Download
Email Patches
Plain Diff
refactor: utilizacao do prisma na rota de criar um evento
parent
e2d7f2d6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
src/controller/event/eventController.ts
+41
-39
src/controller/event/eventController.ts
src/repository/event/eventRepository.ts
+36
-42
src/repository/event/eventRepository.ts
src/repository/user/userRepository.ts
+20
-28
src/repository/user/userRepository.ts
src/services/event/eventService.ts
+62
-42
src/services/event/eventService.ts
src/services/user/userService.ts
+0
-2
src/services/user/userService.ts
with
159 additions
and
153 deletions
+159
-153
src/controller/event/eventController.ts
View file @
1b5d71f4
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-explicit-any */
import
{
Request
,
Response
}
from
'
express
'
;
import
{
Request
,
Response
}
from
"
express
"
;
import
*
as
eventService
from
'
../../services/event/eventService
'
;
import
*
as
eventService
from
"
../../services/event/eventService
"
;
import
{
EventRegistrationData
}
from
'
../../interfaces/eventInterface
'
;
import
{
EventRegistrationData
}
from
"
../../interfaces/eventInterface
"
;
import
{
logger
}
from
"
../../logger
"
;
import
{
logger
}
from
"
../../logger
"
;
import
{
Event
}
from
"
@prisma/client
"
;
export
const
createEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
createEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
const
eventBody
=
{...
req
.
body
};
const
eventBody
=
{
...
req
.
body
};
try
{
try
{
const
eventData
:
Event
=
req
.
body
;
const
eventData
:
EventRegistrationData
=
req
.
body
;
const
eventId
=
await
eventService
.
createEvent
(
eventData
);
const
eventId
=
await
eventService
.
createEvent
(
eventData
);
logger
.
info
(
`Event registered successfully. EventID:
${
eventId
}
`
);
logger
.
info
(
`Event registered successfully. EventID:
${
eventId
}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
({
message
:
"
Event registered successfully
"
,
eventId
});
res
.
json
({
message
:
"
Event registered successfully
"
,
eventId
});
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
...
@@ -24,24 +24,23 @@ export const createEvent = async (req: Request, res: Response) => {
...
@@ -24,24 +24,23 @@ export const createEvent = async (req: Request, res: Response) => {
stack
:
error
.
stack
,
stack
:
error
.
stack
,
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
export
const
linkUserToAEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
linkUserToAEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
console
.
log
(
req
.
params
);
const
event
:
EventRegistrationData
=
req
.
body
;
const
event
:
EventRegistrationData
=
req
.
body
;
const
result
=
await
eventService
.
linkUserToAEvent
(
event
,
req
.
headers
.
authorization
);
const
result
=
await
eventService
.
linkUserToAEvent
(
event
,
req
.
headers
.
authorization
);
logger
.
info
(
`User linked successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`User linked successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
res
.
status
(
200
).
json
({
message
:
'
User linked successfully
'
,
result
});
res
.
status
(
200
).
json
({
message
:
"
User linked successfully
"
,
result
});
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
req
.
body
req
.
body
...
@@ -50,13 +49,11 @@ export const linkUserToAEvent = async (req: Request, res: Response) => {
...
@@ -50,13 +49,11 @@ export const linkUserToAEvent = async (req: Request, res: Response) => {
stack
:
error
.
stack
,
stack
:
error
.
stack
,
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
}
export
const
updateEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
updateEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
const
nEventID
=
parseInt
(
req
.
params
.
id
);
const
nEventID
=
parseInt
(
req
.
params
.
id
);
const
eventData
:
Partial
<
EventRegistrationData
>
=
req
.
body
;
const
eventData
:
Partial
<
EventRegistrationData
>
=
req
.
body
;
...
@@ -66,9 +63,8 @@ export const updateEvent = async (req: Request, res: Response) => {
...
@@ -66,9 +63,8 @@ export const updateEvent = async (req: Request, res: Response) => {
logger
.
info
(
`Event edited successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Event edited successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
({
message
:
'
Event updated successfully
'
,
result
});
res
.
json
({
message
:
"
Event updated successfully
"
,
result
});
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
req
.
body
req
.
body
...
@@ -77,20 +73,21 @@ export const updateEvent = async (req: Request, res: Response) => {
...
@@ -77,20 +73,21 @@ export const updateEvent = async (req: Request, res: Response) => {
stack
:
error
.
stack
,
stack
:
error
.
stack
,
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
export
const
deleteEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
deleteEvent
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
const
eventId
=
parseInt
(
req
.
params
.
id
);
const
eventId
=
parseInt
(
req
.
params
.
id
);
const
result
=
await
eventService
.
deleteEvent
(
eventId
);
const
result
=
await
eventService
.
deleteEvent
(
eventId
);
logger
.
info
(
`Event removed successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Event removed successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
({
message
:
'
Event removed successfully
'
,
result
});
res
.
json
({
message
:
"
Event removed successfully
"
,
result
});
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
...
@@ -101,7 +98,7 @@ export const deleteEvent = async (req: Request, res: Response) => {
...
@@ -101,7 +98,7 @@ export const deleteEvent = async (req: Request, res: Response) => {
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
...
@@ -124,22 +121,22 @@ export const listAllEvents = async (req: Request, res: Response) => {
...
@@ -124,22 +121,22 @@ export const listAllEvents = async (req: Request, res: Response) => {
stack
:
error
.
stack
,
stack
:
error
.
stack
,
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
export
const
listEventByID
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
listEventByID
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
const
eventId
=
parseInt
(
req
.
params
.
id
);
const
eventId
=
parseInt
(
req
.
params
.
id
);
const
result
=
await
eventService
.
listEventByID
(
eventId
);
const
result
=
await
eventService
.
listEventByID
(
eventId
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
(
result
);
res
.
json
(
result
);
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
req
.
body
req
.
body
...
@@ -149,7 +146,7 @@ export const listEventByID = async (req: Request, res: Response) => {
...
@@ -149,7 +146,7 @@ export const listEventByID = async (req: Request, res: Response) => {
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
...
@@ -159,14 +156,19 @@ export const listEventByFilters = async (req: Request, res: Response) => {
...
@@ -159,14 +156,19 @@ export const listEventByFilters = async (req: Request, res: Response) => {
const
nAuthorID
=
parseInt
(
req
.
query
.
nAuthorID
as
string
);
const
nAuthorID
=
parseInt
(
req
.
query
.
nAuthorID
as
string
);
const
dtStartTime
=
req
.
query
.
dtStartTime
as
string
;
const
dtStartTime
=
req
.
query
.
dtStartTime
as
string
;
const
result
=
await
eventService
.
listEventsByFilters
(
nEventType
,
nAuthorID
,
dtStartTime
);
const
result
=
await
eventService
.
listEventsByFilters
(
nEventType
,
nAuthorID
,
dtStartTime
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
(
result
);
res
.
json
(
result
);
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
req
.
body
req
.
body
...
@@ -176,22 +178,22 @@ export const listEventByFilters = async (req: Request, res: Response) => {
...
@@ -176,22 +178,22 @@ export const listEventByFilters = async (req: Request, res: Response) => {
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
export
const
AllEventsToPatient
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
export
const
AllEventsToPatient
=
async
(
req
:
Request
,
res
:
Response
)
=>
{
try
{
try
{
const
nPatientID
=
parseInt
(
req
.
params
.
id
);
const
nPatientID
=
parseInt
(
req
.
params
.
id
);
const
result
=
await
eventService
.
AllEventsToPatient
(
nPatientID
);
const
result
=
await
eventService
.
AllEventsToPatient
(
nPatientID
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Listed event by ID successfully. Result:
${
JSON
.
stringify
(
result
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
logger
.
info
(
`Request Body:
${
JSON
.
stringify
(
req
.
body
)}
`
);
res
.
json
(
result
);
res
.
json
(
result
);
}
catch
(
error
:
any
)
{
}
catch
(
error
:
any
)
{
logger
.
error
(
logger
.
error
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
`Ocorreu um erro na rota:
${
error
.
message
}
, body:
${
JSON
.
stringify
(
req
.
body
req
.
body
...
@@ -201,6 +203,6 @@ export const AllEventsToPatient = async (req: Request, res: Response) => {
...
@@ -201,6 +203,6 @@ export const AllEventsToPatient = async (req: Request, res: Response) => {
}
}
);
);
res
.
status
(
400
).
json
({
error
:
error
.
message
});
res
.
status
(
400
).
json
({
error
:
error
.
message
});
}
}
};
};
This diff is collapsed.
Click to expand it.
src/repository/event/eventRepository.ts
View file @
1b5d71f4
import
{
query
}
from
'
../../../database/db
'
;
import
{
Event
,
PrismaClient
}
from
"
@prisma/client
"
;
import
{
EventRegistrationData
}
from
'
../../interfaces/eventInterface
'
;
import
{
query
}
from
"
../../../database/db
"
;
import
{
EventRegistrationData
}
from
"
../../interfaces/eventInterface
"
;
const
prisma
=
new
PrismaClient
();
export
async
function
getTheLastFourEventsByUser
(
userId
:
number
)
{
export
async
function
getTheLastFourEventsByUser
(
userId
:
number
)
{
const
queryText
=
`
const
queryText
=
`
...
@@ -15,13 +18,10 @@ export async function getTheLastFourEventsByUser(userId: number) {
...
@@ -15,13 +18,10 @@ export async function getTheLastFourEventsByUser(userId: number) {
const
values
=
[
userId
];
const
values
=
[
userId
];
const
result
=
await
query
(
queryText
,
values
);
const
result
=
await
query
(
queryText
,
values
);
console
.
log
(
result
.
rows
);
return
result
.
rows
;
return
result
.
rows
;
}
}
export
async
function
linkUserToAEvent
(
eventId
:
number
,
userId
:
number
)
{
export
async
function
linkUserToAEvent
(
eventId
:
number
,
userId
:
number
)
{
const
queryText
=
`
const
queryText
=
`
UPDATE Events
UPDATE Events
SET nPatientID = $1
SET nPatientID = $1
...
@@ -31,39 +31,30 @@ export async function linkUserToAEvent(eventId: number, userId: number) {
...
@@ -31,39 +31,30 @@ export async function linkUserToAEvent(eventId: number, userId: number) {
return
!!
result
;
return
!!
result
;
}
}
export
const
createEvent
=
async
(
eventData
:
EventRegistrationData
)
=>
{
export
const
createEvent
=
async
(
eventData
:
Event
)
=>
{
const
ontem
=
new
Date
();
const
event
=
prisma
.
event
.
create
({
ontem
.
setDate
(
ontem
.
getDate
()
-
1
);
data
:
{
...
eventData
,
if
(
eventData
.
dtDate
<=
ontem
)
{
active
:
true
,
throw
new
Error
(
'
A data do evento deve ser maior que a data de ontem.
'
);
},
}
});
if
(
eventData
.
dtEndTime
<=
eventData
.
dtStartTime
)
{
throw
new
Error
(
'
A hora de término deve ser posterior à hora de início.
'
);
}
const
queryText
=
`
INSERT INTO Events (nAuthorID, nEventType, dtDate, dtStartTime, dtEndTime, nStatus, bActive)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING nEventID`
;
const
values
=
[
eventData
.
nAuthorID
,
eventData
.
nEventType
,
eventData
.
dtDate
,
eventData
.
dtStartTime
,
eventData
.
dtEndTime
,
eventData
.
nStatus
,
1
];
const
result
=
await
query
(
queryText
,
values
);
return
event
;
return
result
.
rows
[
0
].
nEventID
;
};
};
export
const
updateEvent
=
async
(
nEventID
:
number
,
eventData
:
Partial
<
EventRegistrationData
>
)
=>
{
export
const
updateEvent
=
async
(
const
{
nPatientID
,
nEventType
,
strName
,
dtDate
,
dtStartTime
,
dtEndTime
,
nStatus
}
=
eventData
;
nEventID
:
number
,
eventData
:
Partial
<
EventRegistrationData
>
)
=>
{
const
{
nPatientID
,
nEventType
,
strName
,
dtDate
,
dtStartTime
,
dtEndTime
,
nStatus
,
}
=
eventData
;
const
dataAtual
=
new
Date
();
const
dataAtual
=
new
Date
();
let
index
=
1
;
let
index
=
1
;
...
@@ -110,7 +101,7 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
...
@@ -110,7 +101,7 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
}
}
if
(
index
===
1
)
{
if
(
index
===
1
)
{
throw
new
Error
(
'
No fields to update.
'
);
throw
new
Error
(
"
No fields to update.
"
);
}
}
values
.
push
(
nEventID
);
values
.
push
(
nEventID
);
...
@@ -136,7 +127,6 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
...
@@ -136,7 +127,6 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
};
};
export
const
deleteEventById
=
async
(
nEventID
:
number
)
=>
{
export
const
deleteEventById
=
async
(
nEventID
:
number
)
=>
{
const
values
=
[
nEventID
];
const
values
=
[
nEventID
];
const
queryText
=
`
const
queryText
=
`
UPDATE Events
UPDATE Events
...
@@ -210,8 +200,11 @@ export const listAll = async () => {
...
@@ -210,8 +200,11 @@ export const listAll = async () => {
return
result
.
rows
;
return
result
.
rows
;
};
};
export
const
getEventsByFilters
=
async
(
nEventType
:
number
,
nAuthorID
:
number
,
dtStartTime
:
string
):
Promise
<
any
[]
>
=>
{
export
const
getEventsByFilters
=
async
(
nEventType
:
number
,
nAuthorID
:
number
,
dtStartTime
:
string
):
Promise
<
any
[]
>
=>
{
const
queryText
=
`
const
queryText
=
`
SELECT
SELECT
nEventID,
nEventID,
...
@@ -247,8 +240,9 @@ export const getEventsByFilters = async (nEventType: number, nAuthorID: number,
...
@@ -247,8 +240,9 @@ export const getEventsByFilters = async (nEventType: number, nAuthorID: number,
return
result
.
rows
;
return
result
.
rows
;
};
};
export
const
getAllEventsToPatient
=
async
(
nPatientID
:
number
):
Promise
<
any
[]
>
=>
{
export
const
getAllEventsToPatient
=
async
(
nPatientID
:
number
):
Promise
<
any
[]
>
=>
{
const
queryText
=
`
const
queryText
=
`
SELECT
SELECT
nEventID,
nEventID,
...
@@ -279,4 +273,4 @@ export const getAllEventsToPatient = async (nPatientID: number): Promise<any[]>
...
@@ -279,4 +273,4 @@ export const getAllEventsToPatient = async (nPatientID: number): Promise<any[]>
const
result
=
await
query
(
queryText
,
values
);
const
result
=
await
query
(
queryText
,
values
);
return
result
.
rows
;
return
result
.
rows
;
};
};
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/repository/user/userRepository.ts
View file @
1b5d71f4
...
@@ -16,33 +16,25 @@ export const getUserByEmail = async (email: string) => {
...
@@ -16,33 +16,25 @@ export const getUserByEmail = async (email: string) => {
return
user
;
return
user
;
};
};
export
const
getUserById
=
async
(
nUserID
:
number
)
=>
{
export
const
getUserById
=
async
(
userId
:
number
)
=>
{
const
queryText
=
`
const
user
=
await
prisma
.
user
.
findFirst
({
SELECT
where
:
{
nUserID,
id
:
userId
,
strEmail,
AND
:
[
strPhone,
{
strRegion,
OR
:
[
strLosingPhase,
{
strUsername,
userType
:
2
,
bActive,
},
CASE
{
WHEN nUserType = 0 THEN 'ADMIN'
userType
:
3
,
WHEN nUserType = 1 THEN 'USUARIO'
},
WHEN nUserType = 2 THEN 'PSICOLOGO'
],
WHEN nUserType = 3 THEN 'TERAPEUTA'
},
ELSE 'Desconhecido'
],
END AS nUserType,
},
dtCreated AT TIME ZONE 'UTC' AT TIME ZONE 'America/Sao_Paulo' AS dtCreated,
});
dtEnd AT TIME ZONE 'UTC' AT TIME ZONE 'America/Sao_Paulo' AS dtEnd,
return
user
;
dtUpdated AT TIME ZONE 'UTC' AT TIME ZONE 'America/Sao_Paulo' AS dtUpdated,
strChildrenName,
strGender
FROM Users
WHERE nUserID = $1`
;
const
values
=
[
nUserID
];
const
result
=
await
query
(
queryText
,
values
);
return
result
.
rows
[
0
];
};
};
export
const
registerUser
=
async
(
userData
:
User
)
=>
{
export
const
registerUser
=
async
(
userData
:
User
)
=>
{
...
@@ -233,7 +225,7 @@ export const login = async (email: string, password: string) => {
...
@@ -233,7 +225,7 @@ export const login = async (email: string, password: string) => {
}
}
const
userData
=
user
.
rows
[
0
];
const
userData
=
user
.
rows
[
0
];
console
.
log
(
userData
);
if
(
userData
.
bactive
!==
true
)
{
if
(
userData
.
bactive
!==
true
)
{
throw
new
Error
(
errorMessages
.
INACTIVE_USER
);
throw
new
Error
(
errorMessages
.
INACTIVE_USER
);
}
}
...
...
This diff is collapsed.
Click to expand it.
src/services/event/eventService.ts
View file @
1b5d71f4
import
*
as
eventRepository
from
'
../../repository/event/eventRepository
'
;
import
*
as
eventRepository
from
"
../../repository/event/eventRepository
"
;
import
{
EventRegistrationData
}
from
'
../../interfaces/eventInterface
'
;
import
{
EventRegistrationData
}
from
"
../../interfaces/eventInterface
"
;
import
{
errorMessages
}
from
'
../../../messages/errorMessages
'
;
import
{
errorMessages
}
from
"
../../../messages/errorMessages
"
;
import
getUserFromToken
from
"
../token/tokenService
"
;
import
getUserFromToken
from
"
../token/tokenService
"
;
import
*
as
userRepository
from
'
../../repository/user/userRepository
'
;
import
*
as
userRepository
from
"
../../repository/user/userRepository
"
;
import
{
getTheLastFourEventsByUser
}
from
"
../../repository/event/eventRepository
"
;
import
{
getTheLastFourEventsByUser
}
from
"
../../repository/event/eventRepository
"
;
export
async
function
linkUserToAEvent
(
event
:
EventRegistrationData
,
token
:
string
)
{
import
{
Event
}
from
"
@prisma/client
"
;
export
async
function
linkUserToAEvent
(
event
:
EventRegistrationData
,
token
:
string
)
{
const
userId
=
getUserFromToken
(
token
);
const
userId
=
getUserFromToken
(
token
);
if
(
!
event
||
!
userId
)
{
if
(
!
event
||
!
userId
)
{
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
}
}
const
lastFourEvents
:
Array
<
any
>
=
Object
.
values
(
await
getTheLastFourEventsByUser
(
userId
));
const
lastFourEvents
:
Array
<
any
>
=
Object
.
values
(
await
getTheLastFourEventsByUser
(
userId
)
);
const
idLastAuthor
=
lastFourEvents
[
0
].
nauthorid
;
const
idLastAuthor
=
lastFourEvents
[
0
].
nauthorid
;
const
length
=
lastFourEvents
.
filter
((
el
)
=>
el
.
nauthorid
===
idLastAuthor
).
length
;
const
length
=
lastFourEvents
.
filter
(
(
el
)
=>
el
.
nauthorid
===
idLastAuthor
).
length
;
console
.
log
(
idLastAuthor
);
console
.
log
(
idLastAuthor
);
console
.
log
(
lastFourEvents
)
console
.
log
(
lastFourEvents
)
;
console
.
log
(
length
)
console
.
log
(
length
)
;
if
(
length
<
3
)
{
if
(
length
<
3
)
{
if
(
lastFourEvents
[
0
].
nauthorid
!==
event
.
nAuthorID
)
{
if
(
lastFourEvents
[
0
].
nauthorid
!==
event
.
nAuthorID
)
{
throw
new
Error
(
errorMessages
.
EVENT_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
EVENT_NOT_FOUND
);
}
}
}
}
...
@@ -27,37 +35,38 @@ export async function linkUserToAEvent(event: EventRegistrationData, token: stri
...
@@ -27,37 +35,38 @@ export async function linkUserToAEvent(event: EventRegistrationData, token: stri
const
result
=
await
eventRepository
.
linkUserToAEvent
(
event
.
nEventID
,
userId
);
const
result
=
await
eventRepository
.
linkUserToAEvent
(
event
.
nEventID
,
userId
);
console
.
log
(
result
);
console
.
log
(
result
);
if
(
!
result
)
{
if
(
!
result
)
{
throw
new
Error
(
'
O usuário já possui 4 eventos ativos com este profissional.
'
);
throw
new
Error
(
"
O usuário já possui 4 eventos ativos com este profissional.
"
);
}
}
return
result
;
return
result
;
}
}
export
const
createEvent
=
async
(
eventData
:
Event
)
=>
{
export
const
createEvent
=
async
(
eventData
:
EventRegistrationData
)
=>
{
if
(
if
(
!
eventData
.
nA
uthorI
D
||
!
eventData
.
a
uthorI
d
||
!
eventData
.
d
tD
ate
||
!
eventData
.
date
||
!
eventData
.
dtS
tartTime
||
!
eventData
.
s
tartTime
||
!
eventData
.
dtE
ndTime
!
eventData
.
e
ndTime
)
{
)
{
throw
new
Error
(
errorMessages
.
MISSING_FIELDS
);
throw
new
Error
(
errorMessages
.
MISSING_FIELDS
);
}
}
const
validateAuthor
=
await
userRepository
.
getUserById
(
eventData
.
nA
uthorI
D
);
const
validateAuthor
=
await
userRepository
.
getUserById
(
eventData
.
a
uthorI
d
);
if
(
!
validateAuthor
)
{
if
(
!
validateAuthor
)
{
throw
new
Error
(
'
(nAuthorID) Somente Psicólogo/ Terapeuta podem criar agendamentos.
'
);
throw
new
Error
(
"
(nAuthorID) Somente Psicólogo/ Terapeuta podem criar agendamentos.
"
);
}
}
if
(
eventData
.
d
tD
ate
!==
undefined
)
{
if
(
!
eventData
.
date
)
{
const
dataAtual
=
new
Date
();
const
dataAtual
=
new
Date
();
if
(
new
Date
(
eventData
.
dtDate
)
<
dataAtual
)
{
const
dataEvento
=
new
Date
(
eventData
.
date
);
throw
new
Error
(
'
Não é possível alterar agendas para datas passadas.
'
);
if
(
dataEvento
<
dataAtual
)
{
throw
new
Error
(
"
Não é possível alterar agendas para datas passadas.
"
);
}
}
}
}
if
(
eventData
.
dtStartTime
&&
eventData
.
dtEndTime
&&
eventData
.
dtS
tartTime
>
eventData
.
dtE
ndTime
)
{
if
(
+
eventData
.
s
tartTime
>
+
eventData
.
e
ndTime
)
{
throw
new
Error
(
'
início do agendamento precisa ser anterior ao final
'
);
throw
new
Error
(
"
início do agendamento precisa ser anterior ao final
"
);
}
}
return
await
eventRepository
.
createEvent
({
return
await
eventRepository
.
createEvent
({
...
@@ -65,8 +74,10 @@ export const createEvent = async (eventData: EventRegistrationData) => {
...
@@ -65,8 +74,10 @@ export const createEvent = async (eventData: EventRegistrationData) => {
});
});
};
};
export
const
updateEvent
=
async
(
nEventID
:
number
,
eventData
:
Partial
<
EventRegistrationData
>
)
=>
{
export
const
updateEvent
=
async
(
nEventID
:
number
,
eventData
:
Partial
<
EventRegistrationData
>
)
=>
{
const
existingEvent
=
await
eventRepository
.
getEventById
(
nEventID
);
const
existingEvent
=
await
eventRepository
.
getEventById
(
nEventID
);
if
(
!
existingEvent
)
{
if
(
!
existingEvent
)
{
...
@@ -74,28 +85,31 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
...
@@ -74,28 +85,31 @@ export const updateEvent = async (nEventID: number, eventData: Partial<EventRegi
}
}
if
(
existingEvent
)
{
if
(
existingEvent
)
{
if
(
!
existingEvent
.
bActive
)
{
if
(
!
existingEvent
.
bActive
)
{
throw
new
Error
(
'
O evento não está ativo e não pode ser editado.
'
);
throw
new
Error
(
"
O evento não está ativo e não pode ser editado.
"
);
}
}
}
}
if
(
!
existingEvent
.
nAuthorID
)
{
if
(
!
existingEvent
.
nAuthorID
)
{
throw
new
Error
(
'
Não é permitido alterar o autor.
'
);
throw
new
Error
(
"
Não é permitido alterar o autor.
"
);
}
}
if
(
!
existingEvent
.
dtDate
)
{
if
(
!
existingEvent
.
dtDate
)
{
const
dataAtual
=
new
Date
();
const
dataAtual
=
new
Date
();
if
(
new
Date
(
existingEvent
.
dtDate
)
<
dataAtual
)
{
if
(
new
Date
(
existingEvent
.
dtDate
)
<
dataAtual
)
{
throw
new
Error
(
'
Não é possível alterar agendas para datas passadas.
'
);
throw
new
Error
(
"
Não é possível alterar agendas para datas passadas.
"
);
}
}
}
}
if
(
existingEvent
.
dtStartTime
&&
existingEvent
.
dtEndTime
&&
existingEvent
.
dtStartTime
>
existingEvent
.
dtEndTime
)
{
if
(
throw
new
Error
(
'
início do agendamento precisa ser anterior ao final
'
);
existingEvent
.
dtStartTime
&&
existingEvent
.
dtEndTime
&&
existingEvent
.
dtStartTime
>
existingEvent
.
dtEndTime
)
{
throw
new
Error
(
"
início do agendamento precisa ser anterior ao final
"
);
}
}
return
await
eventRepository
.
updateEvent
(
nEventID
,
eventData
);
return
await
eventRepository
.
updateEvent
(
nEventID
,
eventData
);
};
};
export
const
deleteEvent
=
async
(
nEventID
:
number
)
=>
{
export
const
deleteEvent
=
async
(
nEventID
:
number
)
=>
{
const
existingEvent
=
await
eventRepository
.
getEventById
(
nEventID
);
const
existingEvent
=
await
eventRepository
.
getEventById
(
nEventID
);
if
(
!
existingEvent
)
{
if
(
!
existingEvent
)
{
throw
new
Error
(
errorMessages
.
EVENT_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
EVENT_NOT_FOUND
);
...
@@ -125,9 +139,16 @@ export const listEventByID = async (nEventID: number) => {
...
@@ -125,9 +139,16 @@ export const listEventByID = async (nEventID: number) => {
return
result
;
return
result
;
};
};
export
const
listEventsByFilters
=
async
(
nEventType
:
number
,
nAuthorID
:
number
,
dtStartTime
:
string
)
=>
{
export
const
listEventsByFilters
=
async
(
nEventType
:
number
,
const
result
=
await
eventRepository
.
getEventsByFilters
(
nEventType
,
nAuthorID
,
dtStartTime
);
nAuthorID
:
number
,
dtStartTime
:
string
)
=>
{
const
result
=
await
eventRepository
.
getEventsByFilters
(
nEventType
,
nAuthorID
,
dtStartTime
);
if
(
!
result
)
{
if
(
!
result
)
{
throw
new
Error
(
errorMessages
.
EVENTS_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
EVENTS_NOT_FOUND
);
}
}
...
@@ -136,7 +157,6 @@ export const listEventsByFilters = async (nEventType: number, nAuthorID: number,
...
@@ -136,7 +157,6 @@ export const listEventsByFilters = async (nEventType: number, nAuthorID: number,
};
};
export
const
AllEventsToPatient
=
async
(
nPatientID
:
number
)
=>
{
export
const
AllEventsToPatient
=
async
(
nPatientID
:
number
)
=>
{
if
(
!
nPatientID
)
{
if
(
!
nPatientID
)
{
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
}
}
...
@@ -147,4 +167,4 @@ export const AllEventsToPatient = async (nPatientID: number) => {
...
@@ -147,4 +167,4 @@ export const AllEventsToPatient = async (nPatientID: number) => {
}
}
return
result
;
return
result
;
};
};
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/services/user/userService.ts
View file @
1b5d71f4
...
@@ -60,7 +60,6 @@ export const loginUser = async (email: string, password: string) => {
...
@@ -60,7 +60,6 @@ export const loginUser = async (email: string, password: string) => {
try
{
try
{
const
user
=
await
userRepository
.
getUserByEmail
(
email
);
const
user
=
await
userRepository
.
getUserByEmail
(
email
);
console
.
log
(
user
);
if
(
!
user
)
{
if
(
!
user
)
{
throw
new
Error
(
errorMessages
.
USER_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
USER_NOT_FOUND
);
}
}
...
@@ -91,7 +90,6 @@ export const loginUser = async (email: string, password: string) => {
...
@@ -91,7 +90,6 @@ export const loginUser = async (email: string, password: string) => {
};
};
export
const
removeUser
=
async
(
nUserId
:
number
)
=>
{
export
const
removeUser
=
async
(
nUserId
:
number
)
=>
{
console
.
log
(
nUserId
);
if
(
!
nUserId
)
{
if
(
!
nUserId
)
{
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
throw
new
Error
(
errorMessages
.
ID_NOT_FOUND
);
}
}
...
...
This diff is collapsed.
Click to expand it.
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