Skip to content

Commit 9571833

Browse files
requestConfig.ts 및 sendMessage.ts에서 scheduledDate 타입을 Schema.DateFromSelf와 Schema.DateFromString으로 변경하고, messageService.ts에서 스키마 디코딩 방식을 개선하여 코드 포맷을 정리함.
1 parent 868b926 commit 9571833

3 files changed

Lines changed: 23 additions & 23 deletions

File tree

src/models/requests/messages/requestConfig.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import {formatWithTransfer} from '@lib/stringDateTrasnfer';
12
import {Schema} from 'effect';
23

34
// SDK 및 OS 정보
@@ -28,7 +29,12 @@ export const defaultAgentTypeSchema = Schema.Struct({
2829
// send 요청 시 사용되는 Config 스키마
2930
export const sendRequestConfigSchema = Schema.Struct({
3031
scheduledDate: Schema.optional(
31-
Schema.Union(Schema.DateFromSelf, Schema.String),
32+
Schema.Union(Schema.DateFromSelf, Schema.DateFromString).pipe(
33+
Schema.transform(Schema.String, {
34+
decode: fromA => formatWithTransfer(fromA),
35+
encode: toI => new Date(toI),
36+
}),
37+
),
3238
),
3339
allowDuplicates: Schema.optional(Schema.Boolean),
3440
appId: Schema.optional(Schema.String),

src/models/requests/messages/sendMessage.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Schema } from 'effect';
2-
import { messageSchema } from '@models/base/messages/message';
3-
import { defaultAgentTypeSchema } from './requestConfig';
1+
import {messageSchema} from '@models/base/messages/message';
2+
import {Schema} from 'effect';
3+
import {defaultAgentTypeSchema} from './requestConfig';
44

55
/**
66
* 단건 메시지 발송 요청 모델
@@ -53,7 +53,6 @@ export type RequestSendMessagesSchema = Schema.Schema.Type<
5353
// 기본 Agent 객체 (sdkVersion, osPlatform 값 포함) – 빈 객체 디코딩으로 생성
5454
const defaultAgentValue = Schema.decodeSync(defaultAgentTypeSchema)({});
5555

56-
// --- 추가: 단건 메시지 발송 요청 스키마 정의 ---
5756
export const singleMessageSendingRequestSchema = Schema.Struct({
5857
message: requestSendOneMessageSchema,
5958
agent: Schema.optional(defaultAgentTypeSchema).pipe(
@@ -69,15 +68,16 @@ export const multipleMessageSendingRequestSchema = Schema.Struct({
6968
Schema.withConstructorDefault(() => defaultAgentValue),
7069
),
7170
messages: Schema.Array(requestSendOneMessageSchema),
72-
scheduledDate: Schema.optional(Schema.Union(Schema.String, Schema.Date)),
71+
scheduledDate: Schema.optional(
72+
Schema.Union(Schema.DateFromSelf, Schema.DateFromString),
73+
),
7374
showMessageList: Schema.optional(Schema.Boolean),
7475
});
7576

7677
export type MultipleMessageSendingRequestSchema = Schema.Schema.Type<
7778
typeof multipleMessageSendingRequestSchema
7879
>;
7980

80-
// --- 수정: Effect Schema 기반 타입으로 변경 ---
8181
export type SingleMessageSendingRequestSchema = Schema.Schema.Type<
8282
typeof singleMessageSendingRequestSchema
8383
>;

src/services/messages/messageService.ts

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { formatWithTransfer } from '@lib/stringDateTrasnfer';
21
import stringifyQuery from '@lib/stringifyQuery';
32
import {
43
GetMessagesFinalizeRequest,
@@ -26,10 +25,10 @@ import {
2625
GetStatisticsResponse,
2726
SingleMessageSentResponse,
2827
} from '@models/responses/messageResponses';
29-
import { DetailGroupMessageResponse } from '@models/responses/sendManyDetailResponse';
30-
import { Schema } from 'effect';
28+
import {DetailGroupMessageResponse} from '@models/responses/sendManyDetailResponse';
29+
import {Schema} from 'effect';
3130
import * as Effect from 'effect/Effect';
32-
import { defaultRuntime, runPromise as runtimeRunPromise } from 'effect/Runtime';
31+
import {defaultRuntime, runPromise as runtimeRunPromise} from 'effect/Runtime';
3332
import {
3433
BadRequestError,
3534
MessageNotReceivedError,
@@ -51,13 +50,13 @@ export default class MessageService extends DefaultService {
5150
appId?: string,
5251
): Promise<SingleMessageSentResponse> {
5352
// Effect-Schema 기반 런타임 검증
54-
const decodedMessage = Schema.decodeUnknownSync(requestSendOneMessageSchema)(
55-
message,
56-
);
53+
const decodedMessage = Schema.decodeUnknownSync(
54+
requestSendOneMessageSchema,
55+
)(message);
5756

5857
const parameter = {
5958
message: decodedMessage,
60-
...(appId ? { agent: { appId } } : {}),
59+
...(appId ? {agent: {appId}} : {}),
6160
} as SingleMessageSendingRequestSchema;
6261

6362
return this.request<
@@ -109,16 +108,11 @@ export default class MessageService extends DefaultService {
109108
requestConfigParameter,
110109
);
111110

112-
const scheduledDate =
113-
decodedConfig.scheduledDate != undefined
114-
? formatWithTransfer(decodedConfig.scheduledDate)
115-
: undefined;
116-
117111
const parameterObject = {
118112
messages: messageParameters,
119113
allowDuplicates: decodedConfig.allowDuplicates,
120-
...(decodedConfig.appId ? { agent: { appId: decodedConfig.appId } } : {}),
121-
scheduledDate,
114+
...(decodedConfig.appId ? {agent: {appId: decodedConfig.appId}} : {}),
115+
scheduledDate: decodedConfig.scheduledDate,
122116
showMessageList: decodedConfig.showMessageList,
123117
};
124118

@@ -146,7 +140,7 @@ export default class MessageService extends DefaultService {
146140
/**
147141
* 4. 모든 메시지 발송건이 실패인 경우 MessageNotReceivedError 반환
148142
*/
149-
const { count } = response.groupInfo;
143+
const {count} = response.groupInfo;
150144
const failedAll =
151145
response.failedMessageList.length > 0 &&
152146
count.total === count.registeredFailed;

0 commit comments

Comments
 (0)