Commit f956c40e by Natthaphat

fix token myPortal

parent b2561485
...@@ -18,19 +18,19 @@ export class ExcelReportService { ...@@ -18,19 +18,19 @@ export class ExcelReportService {
private translateService: TranslateService private translateService: TranslateService
) { } ) { }
getExcelList(): Observable<TemplateModel[]> { getExcelList(): Observable<TemplateModel[]> {
return this.http.get<TemplateModel[]>(environment.baseUrl + "/template/lists?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47") return this.http.get<TemplateModel[]>(environment.url + "template/lists?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47")
} }
getModuleList(): Observable<ModuleModel[]> { getModuleList(): Observable<ModuleModel[]> {
return this.http.get<ModuleModel[]>(environment.baseUrl + "/template/lists/module?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47") return this.http.get<ModuleModel[]>(environment.url + "template/lists/module?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47")
} }
getExcelPortalList(): Observable<ExcelPortalModel[]> { getExcelPortalList(): Observable<ExcelPortalModel[]> {
return this.http.get<ExcelPortalModel[]>(environment.baseUrl + "/excel-center/content/lists") return this.http.get<ExcelPortalModel[]>(environment.url + "excel-center/content/lists")
} }
getExcelPortalgGroupList(): Observable<ExcelPortalGroupModel[]> { getExcelPortalgGroupList(): Observable<ExcelPortalGroupModel[]> {
return this.http.get<ExcelPortalGroupModel[]>(environment.baseUrl + "/portal-group/lists") return this.http.get<ExcelPortalGroupModel[]>(environment.url + "portal-group/lists")
} }
getExcelPortalTagsList(): Observable<ExcelPortalTagsModel[]> { getExcelPortalTagsList(): Observable<ExcelPortalTagsModel[]> {
return this.http.get<ExcelPortalTagsModel[]>(environment.baseUrl + "/tag/lists") return this.http.get<ExcelPortalTagsModel[]>(environment.url + "tag/lists")
} }
postTemplate(body: { postTemplate(body: {
...@@ -41,7 +41,7 @@ export class ExcelReportService { ...@@ -41,7 +41,7 @@ export class ExcelReportService {
edesc: string, edesc: string,
module: string module: string
}) { }) {
return this.http.post(environment.baseUrl + "/template?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body) return this.http.post(environment.url + "template?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body)
} }
deleteTemplate(body: TemplateModel): Observable<AlertModel> { deleteTemplate(body: TemplateModel): Observable<AlertModel> {
let option = { let option = {
...@@ -50,10 +50,10 @@ export class ExcelReportService { ...@@ -50,10 +50,10 @@ export class ExcelReportService {
}), }),
body: body body: body
} }
return this.http.delete<AlertModel>(environment.baseUrl + "/template?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", option) return this.http.delete<AlertModel>(environment.url + "template?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", option)
} }
postTemplateFile(body: TemplateFileModel): Observable<AlertModel> { postTemplateFile(body: TemplateFileModel): Observable<AlertModel> {
return this.http.post<AlertModel>(environment.baseUrl + "/template-file?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body) return this.http.post<AlertModel>(environment.url + "template-file?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body)
} }
deleteTemplateFile(body: TemplateFileModel): Observable<AlertModel> { deleteTemplateFile(body: TemplateFileModel): Observable<AlertModel> {
let option = { let option = {
...@@ -62,22 +62,22 @@ export class ExcelReportService { ...@@ -62,22 +62,22 @@ export class ExcelReportService {
}), }),
body: body body: body
} }
return this.http.delete<AlertModel>(environment.baseUrl + "/template-file?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", option) return this.http.delete<AlertModel>(environment.url + "template-file?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", option)
} }
downloadTemplateFile(fileName: string) { downloadTemplateFile(fileName: string) {
return this.http.get(environment.baseUrl + "/template-file/download/excel/" + fileName + "?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", { responseType: 'blob' }) return this.http.get(environment.url + "template-file/download/excel/" + fileName + "?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", { responseType: 'blob' })
} }
printExcelReport(body: { printExcelReport(body: {
fileName: string, fileName: string,
paramObj: string paramObj: string
}) { }) {
return this.http.post(environment.baseUrl + "/template-file/export-to-excel?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body, { responseType: 'blob' }) return this.http.post(environment.url + "template-file/export-to-excel?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47", body, { responseType: 'blob' })
} }
getTemplateFile(templateid: string, filename: string): Observable<AlertModel> { getTemplateFile(templateid: string, filename: string): Observable<AlertModel> {
return this.http.get<AlertModel>(environment.baseUrl + "/template-file/" + templateid + "/" + filename + "?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47",) return this.http.get<AlertModel>(environment.url + "template-file/" + templateid + "/" + filename + "?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47",)
} }
getTemplateFileLists(): Observable<TemplateFileMiniModel[]> { getTemplateFileLists(): Observable<TemplateFileMiniModel[]> {
return this.http.get<TemplateFileMiniModel[]>(environment.baseUrl + "/template-file/menuitem/mini/lists?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47",) return this.http.get<TemplateFileMiniModel[]>(environment.url + "template-file/menuitem/mini/lists?companyid=eb2f4f30-edaf-11ee-a69a-c7680edc0e47",)
} }
} }
\ No newline at end of file
...@@ -18,33 +18,45 @@ export class HttpRequestInterceptor { ...@@ -18,33 +18,45 @@ export class HttpRequestInterceptor {
constructor(private tokenService: TokenService, private authService: AuthService) { } constructor(private tokenService: TokenService, private authService: AuthService) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (req.url.startsWith("./")) { if (req.url.startsWith('./')) {
return next.handle(req); return next.handle(req);
} else {
let authReq = req;
const fullUrl = req.url.startsWith("http") ? req.url : environment.baseUrl + req.url;
const token = this.tokenService.getToken() ? "Bearer " + this.tokenService.getToken() : null
console.log(fullUrl)
if (token != null) {
authReq = this.addTokenHeader(req, token, fullUrl);
} else {
const overideReq = {
url: fullUrl,
};
authReq = req.clone(overideReq);
} }
console.log("full url : ", fullUrl)
return next.handle(authReq).pipe(catchError(error => { // จัดการ full URL
console.log("error", error) const fullUrl = req.url.startsWith('http')
if (error instanceof HttpErrorResponse && error.status === 403 && !fullUrl.includes("login")) { ? req.url
console.log("error", 403) : `${environment.baseUrl.replace(/\/$/, '')}/${req.url.replace(/^\//, '')}`;
let token: string | null = null;
// ใช้ fixed token หาก url เป็น portal.myhr.co.th
if (fullUrl.startsWith(environment.url)) {
token = `Bearer ${environment.portalFixedToken}`;
} else if (this.tokenService.getToken()) {
token = `Bearer ${this.tokenService.getToken()}`;
}
let authReq = req.clone({ url: fullUrl });
if (token) {
authReq = this.addTokenHeader(authReq, token, fullUrl); // ✅ 3 arguments
}
return next.handle(authReq).pipe(
catchError(error => {
if (
error instanceof HttpErrorResponse &&
error.status === 403 &&
!fullUrl.includes('login') &&
!fullUrl.startsWith(environment.url) // ไม่ refresh สำหรับ portal token
) {
return this.handle403Error(authReq, next, fullUrl); return this.handle403Error(authReq, next, fullUrl);
} }
return throwError(error); return throwError(error);
})); })
);
} }
}
private handle403Error(request: HttpRequest<any>, next: HttpHandler, fullUrl: string) { private handle403Error(request: HttpRequest<any>, next: HttpHandler, fullUrl: string) {
if (!this.isRefreshing) { if (!this.isRefreshing) {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
export const environment = { export const environment = {
production: false, production: false,
baseUrl: 'https://myjob.myhr.co.th/api', baseUrl: 'https://myjob.myhr.co.th/api',
url: 'https://portal.myhr.co.th/api/',
portalFixedToken: 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBdXRoIiwidWlkIjoiOGFhNDUzMzAtMzE0Yy0xMWU3LWJhZjMtMmQ3ZDA5ODc3NzQ0Iiwicm9sZSI6InVzZXIiLCJpc3MiOiJDb21wdXRlciBTY2llbmNlIENvcnBvcmF0aW9uIExpbWl0ZWQiLCJmdWxsTmFtZSI6InRlZXJhZGFjaCBrdWhhdGFuYXNhdGllbiIsIm1lbWJlcklkIjoiOGFhNDUzMzAtMzE0Yy0xMWU3LWJhZjMtMmQ3ZDA5ODc3NzQ0In0.FO7u8g7KfzkmZFTuuniBCEQxduPjcvzMbH7iug3DT90',
firebase: { firebase: {
apiKey: "***************************************", apiKey: "***************************************",
authDomain: "************************", authDomain: "************************",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment