Closed permlap-phola closed 2 months ago
@ChunWarayut @warodompom checkout branch นี้ แล้วเริ่มทำ auth service กับ user service ก่อนนะครับ ขอก่อนวันอังคาร
เรียบร้อยครับ @permlap-phola
มันว่าแบบผมมัน clean กว่า
เมื่อ อ. 27 ส.ค. 2024 เวลา 01:24 Permlap Phola @.***> เขียนว่า:
@.**** commented on this pull request.
In services/user.ts https://github.com/tatuga-camp/client-main-tatugaschool/pull/4#discussion_r1731631254 :
+type ResponseGetMeService = {
- id: string;
- createAt: string;
- updateAt: string;
- firstName: string;
- lastName: string;
- email: string;
- phone: string;
- photo: string;
- role: string;
- createBySchoolId: string | null;
- isVerifyEmail: boolean;
- lastActiveAt: string;
- isResetPassword: boolean;
- provider: string;
- isDeleted: boolean;
- deleteAt: string | null;
- };
import User interface มา น่าจะโอเคกว่านะครับ อุส่าเขียน user interface ไว่รอแล้ว
In services/auth.ts https://github.com/tatuga-camp/client-main-tatugaschool/pull/4#discussion_r1731631797 :
+type ResponseSignUpService = {
- id: string;
- createAt: string;
- updateAt: string;
- firstName: string;
- lastName: string;
- email: string;
- phone: string;
- role: string;
- isVerifyEmail: boolean;
- verifyEmailToken?: string;
- verifyEmailTokenExpiresAt?: string;
- lastActiveAt: string;
- isResetPassword: boolean;
- provider: string;
- deleteAt?: string;
- resetPasswordToken?: string;
- resetPasswordTokenExpiresAt?: string; +};
Import User interface
In services/auth.ts https://github.com/tatuga-camp/client-main-tatugaschool/pull/4#discussion_r1731638004 :
@@ -13,20 +21,225 @@ export async function SignInService( input: RequestSignInService ): Promise
{ try {
- const user = await axios({
- method: "POST",
- url:
${process.env.NEXT_PUBLIC_SERVER_URL}/v1/auth/sign-in
,- data: {
- ...input,
- },
- headers: {
- "Content-Type": "application/json",
- },
- responseType: "json",
- const response = await axios.post("/v1/auth/sign-in", { ...input });
ผมแนะนำให้เขีนยแบบนี้น่าจะ โอเคกว่าในการจัดการ service เพราะมันเห็น structure ของของมูลที่เราจะส่งผ่านแบบชัดเจน ว่าเป็น data หรือ param
const user = await axios({ method: "POST", data: { ...input, }, headers: { "Content-Type": "application/json", }, responseType: "json", });
— Reply to this email directly, view it on GitHub https://github.com/tatuga-camp/client-main-tatugaschool/pull/4#pullrequestreview-2261316859, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHCESDLKQIPPIZQ5ZFYJRQLZTNXGBAVCNFSM6AAAAABM7XJPVWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDENRRGMYTMOBVHE . You are receiving this because you were mentioned.Message ID: @.***>
ปัญหามันไม่ได้อยู่ที่ code ดู clean ครับ แต่ผมมองว่ามันจะทำให้การอ่านโค้ดง่ายขึ้น สมมุติว่า service นี้ ใช้ method post ต้องการ param ด้วย มันจะต้องเพิ่ม
axios.post("/v1/auth/sign-in",
{
email: 'example@example.com',
password: 'password123'
},
{
params: {
lang: 'en',
ref: '123'
}
}
);
แบบนี้มันอาจจะเกิดความสบสันของ data และ params ได้
await axios({
method: "POST",
data: {
...input,
},
params: {
lang: 'en',
ref: '123'
}
});
แบบนี้มันจะลดความสบสนได้ดีกว่าครับ แก้ตามนี้ได้เลย @ChunWarayut
resolved kub @permlap-phola
ทำ service