294 lines
7.8 KiB
TypeScript
Raw Normal View History

2019-11-13 13:55:28 +09:00
import { Injectable, Inject } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
2019-11-13 13:55:28 +09:00
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { _MODULE_CONFIG } from '../config/token';
import { ModuleConfig } from '../config/module-config';
import { UrlConfig } from '@ucap-webmessenger/core';
import { Urls } from '../config/urls';
2019-11-13 15:42:30 +09:00
import {
RetrieveRequest,
2019-11-14 10:31:23 +09:00
RetrieveResponse,
2019-11-13 15:42:30 +09:00
encodeRetrieve,
2019-11-14 10:31:23 +09:00
decodeRetrieveSend,
decodeRetrieveReceive,
decodeRetrieveReservation,
RetrieveSearchRequest,
decodeRetrieveSearch
} from '../apis/retrieve';
import {
SendRequest,
SendResponse,
encodeSend,
decodeSend
} from '../apis/send';
import {
DetailRequest,
DetailResponse,
encodeDetail,
decodeDetail,
ReadRequest,
ReadResponse,
encodeRead,
decodeRead,
ReadCheckResponse,
decodeReadCheck,
CancelRequest,
CancelResponse,
encodeCancel,
decodeCancel,
CancelReservationRequest,
CancelReservationResponse,
encodeCancelReservation,
decodeCancelReservation,
RetrieveResourceFileRequest,
RetrieveResourceFileResponse,
encodeRetrieveResourceFile,
decodeRetrieveResourceFile
} from '../apis/detail';
import { DelRequest, DelResponse, decodeDel, encodeDel } from '../apis/del';
import {
SaveMyRequest,
SaveMyResponse,
encodeSaveMy,
decodeSaveMy,
RetrieveMyRequest,
RetrieveMyResponse,
encodeRetrieveMy,
decodeRetrieveMy,
DelMyRequest,
DelMyResponse,
encodeDelMy,
decodeDelMy,
EditMyRequest,
EditMyResponse,
encodeEditMy,
decodeEditMy
} from '../apis/my-message';
import {
EditReservationRequest,
EditReservationResponse,
encodeEditReservation,
decodeEditReservation
} from '../apis/edit-reservation-ex';
import {
SendCopyRequest,
SendCopyResponse,
encodeSendCopy,
decodeSendCopy
} from '../apis/send-copy';
import {
UnreadCountRequest,
UnreadCountResponse,
encodeUnreadCount,
decodeUnreadCount
} from '../apis/unread-count';
2019-11-13 13:55:28 +09:00
@Injectable({
2019-11-13 15:42:30 +09:00
providedIn: 'root'
2019-11-13 13:55:28 +09:00
})
export class MessageApiService {
readonly urls: Urls;
headers: HttpHeaders;
2019-11-13 13:55:28 +09:00
constructor(
@Inject(_MODULE_CONFIG) private moduleConfig: ModuleConfig,
private httpClient: HttpClient
) {
this.urls = UrlConfig.getUrls(
this.moduleConfig.hostConfig,
this.moduleConfig.urls
);
this.headers = new HttpHeaders({
'Content-Type': 'application/json; charset=utf-8'
});
2019-11-13 13:55:28 +09:00
}
2019-11-14 10:31:23 +09:00
/** retrieve */
2019-11-13 15:42:30 +09:00
public retrieveSendMessage(
req: RetrieveRequest
2019-11-14 10:31:23 +09:00
): Observable<RetrieveResponse> {
2019-11-13 13:55:28 +09:00
return this.httpClient
.post<any>(this.urls.retrieveSendMessageList, encodeRetrieve(req), {
headers: this.headers
})
2019-11-13 15:42:30 +09:00
.pipe(map(res => decodeRetrieveSend(res)));
2019-11-13 13:55:28 +09:00
}
2019-11-14 10:31:23 +09:00
public retrieveReceiveMessage(
req: RetrieveRequest
): Observable<RetrieveResponse> {
return this.httpClient
.post<any>(this.urls.retrieveRecvMessageList, encodeRetrieve(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeRetrieveReceive(res)));
}
public retrieveReservationMessage(
req: RetrieveRequest
): Observable<RetrieveResponse> {
return this.httpClient
.post<any>(
this.urls.retrieveReservationMessageList,
encodeRetrieve(req),
2019-11-14 10:31:23 +09:00
{
headers: this.headers
2019-11-14 10:31:23 +09:00
}
)
.pipe(map(res => decodeRetrieveReservation(res)));
}
public retrieveSearchMessage(
req: RetrieveSearchRequest
): Observable<RetrieveResponse> {
return this.httpClient
.post<any>(this.urls.retrieveSearchMessage, encodeRetrieve(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeRetrieveSearch(res)));
}
/** send */
public sendMessage(req: SendRequest): Observable<SendResponse> {
return this.httpClient
.post<any>(this.urls.sendNewMessage, encodeSend(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeSend(res)));
}
/** detail */
public detailMessage(req: DetailRequest): Observable<DetailResponse> {
return this.httpClient
.post<any>(this.urls.retrieveMessageDetail, encodeDetail(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeDetail(res)));
}
public readMessage(req: ReadRequest): Observable<ReadResponse> {
return this.httpClient
.post<any>(this.urls.readMessage, encodeRead(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeRead(res)));
}
public retrieveReadCheck(req: ReadRequest): Observable<ReadCheckResponse> {
return this.httpClient
.post<any>(this.urls.retrieveReadCheck, encodeRead(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeReadCheck(res)));
}
public cancelMessage(req: CancelRequest): Observable<CancelResponse> {
return this.httpClient
.post<any>(this.urls.cancelMessage, encodeCancel(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeCancel(res)));
}
public cancelReservationMessage(
req: CancelReservationRequest
): Observable<CancelReservationResponse> {
return this.httpClient
.post<any>(
this.urls.cancelReservationMessage,
encodeCancelReservation(req),
2019-11-14 10:31:23 +09:00
{
headers: this.headers
2019-11-14 10:31:23 +09:00
}
)
.pipe(map(res => decodeCancelReservation(res)));
}
public retrieveResourceFile(
req: RetrieveResourceFileRequest
): Observable<RetrieveResourceFileResponse> {
return this.httpClient
.post<any>(
this.urls.retrieveResourceFile,
encodeRetrieveResourceFile(req),
2019-11-14 10:31:23 +09:00
{
headers: this.headers
2019-11-14 10:31:23 +09:00
}
)
.pipe(map(res => decodeRetrieveResourceFile(res)));
}
/** del */
public deleteMessage(req: DelRequest): Observable<DelResponse> {
return this.httpClient
.post<any>(this.urls.deleteMessage, encodeDel(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeDel(res)));
}
/** save my message */
public saveMyMessage(req: SaveMyRequest): Observable<SaveMyResponse> {
return this.httpClient
.post<any>(this.urls.saveMyMessage, encodeSaveMy(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeSaveMy(res)));
}
public retrieveMyMessage(
req: RetrieveMyRequest
): Observable<RetrieveMyResponse> {
return this.httpClient
.post<any>(this.urls.retrieveMyMessage, encodeRetrieveMy(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeRetrieveMy(res)));
}
public deleteMyMessage(req: DelMyRequest): Observable<DelMyResponse> {
return this.httpClient
.post<any>(this.urls.deleteMyMessage, encodeDelMy(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeDelMy(res)));
}
public editMyMessage(req: EditMyRequest): Observable<EditMyResponse> {
return this.httpClient
.post<any>(this.urls.editMyMessage, encodeEditMy(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeEditMy(res)));
}
/** edit reservation */
public editReservationMessageEx(
req: EditReservationRequest
): Observable<EditReservationResponse> {
return this.httpClient
.post<any>(
this.urls.editReservationMessageEx,
encodeEditReservation(req),
2019-11-14 10:31:23 +09:00
{
headers: this.headers
2019-11-14 10:31:23 +09:00
}
)
.pipe(map(res => decodeEditReservation(res)));
}
/** send-copy(forward) */
public sendCopyMessage(req: SendCopyRequest): Observable<SendCopyResponse> {
return this.httpClient
.post<any>(this.urls.sendCopyMessage, encodeSendCopy(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeSendCopy(res)));
}
/** unread count */
public retrieveUnreadCount(
req: UnreadCountRequest
): Observable<UnreadCountResponse> {
return this.httpClient
.post<any>(this.urls.retrieveUnreadCount, encodeUnreadCount(req), {
headers: this.headers
})
2019-11-14 10:31:23 +09:00
.pipe(map(res => decodeUnreadCount(res)));
}
2019-11-13 13:55:28 +09:00
}