Compare commits

..

No commits in common. "68da6f7f0f571aed7fe65b1b31f6a4a8fd6d8444" and "81cb60e7ed01a1e882db2a26a3ad709a06de51f0" have entirely different histories.

12 changed files with 55 additions and 78 deletions

View File

@ -54,13 +54,12 @@ session에 있는 role 키로 구분한다
session.role === 'Admin_Sub'
- constA03_01 / 1234 -> 시공사\
session.role === 'Builder'
- teshg44 / 1234 -> 시공사\
session.role === 'Builder'
- partners -> Q.Partners 계정\
session.role === 'Partner'
- 이외의 경우 -> 굳이 체크할 필요 없어보임\
session.role === 'User'
# 지붕재 적합성 TODO
```

View File

@ -7,6 +7,18 @@ datasource db {
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
username String @unique
phone String?
email String?
password String?
kakao_id String?
avatar String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt
}
model MS_SUITABLE {
id Int @id @default(autoincrement())
product_name String @db.VarChar(200)
@ -110,28 +122,28 @@ model SD_SURVEY_SALES_DETAIL_INFO {
model BC_COMM_H {
HEAD_CD String @id(map: "PK_BC_COMM_H") @db.NVarChar(6)
HEAD_ID String? @db.NVarChar(100)
HEAD_NM String? @db.NVarChar(100)
HEAD_JP String? @db.NVarChar(100)
HEAD_4TH String? @db.NVarChar(100)
REF_CHR1 String? @db.NVarChar(100)
REF_CHR2 String? @db.NVarChar(100)
REF_CHR3 String? @db.NVarChar(100)
REF_CHR4 String? @db.NVarChar(100)
REF_CHR5 String? @db.NVarChar(100)
REF_NUM1 String? @db.NVarChar(100)
REF_NUM2 String? @db.NVarChar(100)
REF_NUM3 String? @db.NVarChar(100)
REF_NUM4 String? @db.NVarChar(100)
REF_NUM5 String? @db.NVarChar(100)
REMARKS String? @db.NVarChar(200)
SAP_YN String? @db.NVarChar(1)
STAT_CD String? @db.NVarChar(1)
DEL_YN String? @db.NVarChar(1)
HEAD_ID String @db.NVarChar(100)
HEAD_NM String @db.NVarChar(100)
HEAD_JP String @db.NVarChar(100)
HEAD_4TH String @db.NVarChar(100)
REF_CHR1 String @db.NVarChar(100)
REF_CHR2 String @db.NVarChar(100)
REF_CHR3 String @db.NVarChar(100)
REF_CHR4 String @db.NVarChar(100)
REF_CHR5 String @db.NVarChar(100)
REF_NUM1 String @db.NVarChar(100)
REF_NUM2 String @db.NVarChar(100)
REF_NUM3 String @db.NVarChar(100)
REF_NUM4 String @db.NVarChar(100)
REF_NUM5 String @db.NVarChar(100)
REMARKS String @db.NVarChar(200)
SAP_YN String @db.NVarChar(1)
STAT_CD String @db.NVarChar(1)
DEL_YN String @db.NVarChar(1)
REG_DT DateTime? @db.DateTime
REG_ID String? @db.NVarChar(50)
REG_ID String @db.NVarChar(50)
UPT_DT DateTime? @db.DateTime
UPT_ID String? @db.NVarChar(50)
UPT_ID String @db.NVarChar(50)
QC_COMM_YN String? @default("N", map: "DF__BC_COMM_H__QC_CO__48CFD27E") @db.NVarChar(1)
BC_COMM_L BC_COMM_L[]
@ -169,11 +181,11 @@ model BC_COMM_L {
}
model MS_SUITABLE_ROOF_MATERIAL_GROUP {
ID Int @id @default(autoincrement())
ROOF_MATERIAL_GROUP String @db.VarChar(200)
ROOF_MT_CD String @db.VarChar(200)
REG_DT DateTime @default(now(), map: "DF__MS_SUITAB__creat__4F7CD00D")
UPT_DT DateTime?
ID Int @id @default(autoincrement())
ROOF_MATERIAL_GROUP String @db.VarChar(200)
ROOF_MT_CD String @db.VarChar(200)
REG_DT DateTime @default(now(), map: "DF__MS_SUITAB__creat__4F7CD00D")
UPT_DT DateTime
}
model MS_SUITABLE_DETAIL {

View File

@ -3,18 +3,11 @@ import { cookies } from 'next/headers'
import { NextResponse } from 'next/server'
import { getIronSession } from 'iron-session'
import { sessionOptions } from '@/libs/session'
import { tracking } from '@/libs/tracking'
export async function GET(request: Request) {
const cookieStore = await cookies()
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
tracking({
url: '/api/auth/logout',
data: JSON.stringify({
userId: session.userId,
}),
})
session.destroy()
// return redirect('/login')

View File

@ -4,7 +4,6 @@ import { NextResponse } from 'next/server'
import { getIronSession } from 'iron-session'
import { axiosInstance } from '@/libs/axios'
import { sessionOptions } from '@/libs/session'
import { tracking } from '@/libs/tracking'
export async function POST(request: Request) {
const { loginId, pwd } = await request.json()
@ -16,13 +15,6 @@ export async function POST(request: Request) {
console.log('🚀 ~ result ~ result:', result.data)
if (result.data.result.code === 200) {
tracking({
url: `/api/auth/login`,
data: JSON.stringify({
loginId,
pwd,
}),
})
const cookieStore = await cookies()
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)

View File

@ -1,25 +1,17 @@
import type { SessionData } from '@/types/Auth'
import { NextResponse } from 'next/server'
import { cookies } from 'next/headers'
import { prisma } from '@/libs/prisma'
import { Prisma } from '@prisma/client'
import { getIronSession } from 'iron-session'
import { sessionOptions } from '@/libs/session'
export async function POST(request: Request) {
export const POST = async (request: Request) => {
const { url, data } = await request.json()
const cookieStore = await cookies()
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
let owner = ''
if (url === '/api/auth/login') {
owner = 'Login'
} else if (url === '/api/auth/logout') {
owner = 'Logout'
} else {
owner = session.userId ?? 'Direct'
}
let owner = session.userId
let type = ''
if (url.includes('api')) {
type = 'api'
@ -28,12 +20,12 @@ export async function POST(request: Request) {
}
// @ts-ignore
const result = await prisma.MS_USR_TRK.create({
const result = await Prisma.MS_USR_TRK.create({
data: {
OWNER: owner,
TYPE: type,
URL: url,
DATA: JSON.stringify(data),
owner,
type,
url,
data: JSON.stringify(data),
},
})

View File

@ -33,11 +33,6 @@ export default function Login() {
pwd: '',
})
const isValidEmail = (email: string) => {
const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
return emailRegex.test(email)
}
interface LoginData {
code: number
message: string | null
@ -87,14 +82,6 @@ export default function Login() {
}
}, [loginData])
useEffect(() => {
if (isValidEmail(account.loginId)) {
setIsPartners(true)
} else {
setIsPartners(false)
}
}, [account.loginId])
return (
<>
<div className="login-form-wrap">
@ -107,7 +94,7 @@ export default function Login() {
value={account.loginId}
onChange={(e) => setAccount({ loginId: e.target.value })}
/>
<button className="login-icon" onClick={() => setAccount({ loginId: '' })}>
<button className="login-icon">
<i className="del-icon"></i>
</button>
</div>

View File

@ -71,7 +71,7 @@ export default function Header() {
</div>
<div className="profile-group">
<div className="profile-name">{session.userNm}</div>
<div className="profile-company">{session.storeNm}</div>
<div className="profile-company">{session.category}</div>
</div>
</div>
<div className="side-close-wrap">

View File

@ -1,4 +1,5 @@
import axios from 'axios'
import { tracking } from './tracking'
export const axiosInstance = (url: string | null | undefined) => {
const baseURL = url || process.env.NEXT_PUBLIC_API_URL
@ -11,7 +12,7 @@ export const axiosInstance = (url: string | null | undefined) => {
instance.interceptors.request.use(
(config) => {
// console.log('🚀 ~ config:', config)
console.log('🚀 ~ config:', config)
return config
},
(error) => {

View File

@ -6,4 +6,5 @@ export const tracking = async (params: { url: string; data: string }) => {
url,
data,
})
console.log('🚀 ~ result ~ result:', result)
}

View File

@ -10,9 +10,9 @@ export async function middleware(request: NextRequest) {
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
// todo: 로그인 기능 추가 시 주석 해제
if (!session.isLoggedIn) {
return NextResponse.redirect(new URL('/login', request.url))
}
// if (!session.isLoggedIn) {
// return NextResponse.redirect(new URL('/login', request.url))
// }
return NextResponse.next()
}

View File

@ -108,7 +108,7 @@ export default function EdgeProvider({ children, sessionData }: EdgeProviderProp
//사이드바 초기화
reset()
// 페이지 이벤트 트래킹
handlePageEvent(pathname)
// handlePageEvent(pathname)
}, [pathname])
return <>{children}</>