Skip to content

Commit d9acd42

Browse files
authored
Merge pull request #30 from cybozu/fetch-record
Added fetchRecord API
2 parents c5ae608 + 999d395 commit d9acd42

File tree

4 files changed

+932
-0
lines changed

4 files changed

+932
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Providing kintone REST API with Swift interface.
2828
| `fetchAppStatusSettings` | GET | [/k/v1/app/status.json](https://kintone.dev/en/docs/kintone/rest-api/apps/get-process-management-settings/) |
2929
| `fetchRecords` | GET | [/k/v1/records.json](https://kintone.dev/en/docs/kintone/rest-api/records/get-records/) |
3030
| `removeRecords` | DELETE | [/k/v1/records.json](https://kintone.dev/en/docs/kintone/rest-api/records/delete-records/) |
31+
| `fetchRecord` | GET | [/k/v1/record.json](https://kintone.dev/en/docs/kintone/rest-api/records/get-record/) |
3132
| `submitRecord` | POST | [/k/v1/record.json](https://kintone.dev/en/docs/kintone/rest-api/records/add-record/) |
3233
| `updateRecord` | PUT | [/k/v1/record.json](https://kintone.dev/en/docs/kintone/rest-api/records/update-record/) |
3334
| `fetchRecordComments` | GET | [/k/v1/record/comments.json](https://kintone.dev/en/docs/kintone/rest-api/records/get-comments/) |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// FetchRecordResponse.swift
3+
//
4+
//
5+
// Created by ky0me22 on 2025/02/28.
6+
//
7+
8+
public struct FetchRecordResponse: Decodable, Sendable, Equatable {
9+
public var record: Record.Read
10+
11+
enum CodingKeys: CodingKey {
12+
case record
13+
}
14+
15+
public init(from decoder: any Decoder) throws {
16+
let container = try decoder.container(keyedBy: CodingKeys.self)
17+
record = try container.decode(Record.Read.self, forKey: .record)
18+
}
19+
20+
init(record: Record.Read) {
21+
self.record = record
22+
}
23+
}

Sources/KintoneAPI/KintoneAPI.swift

+17
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,23 @@ public struct KintoneAPI: Sendable {
155155
try check(response: response)
156156
}
157157

158+
public func fetchRecord(
159+
appID: Int,
160+
recordID: Int
161+
) async throws -> FetchRecordResponse {
162+
let queryItems = [
163+
URLQueryItem(name: "app", value: appID.description),
164+
URLQueryItem(name: "id", value: recordID.description),
165+
]
166+
let request = makeRequest(httpMethod: .get, endpoint: .record, queryItems: queryItems)
167+
let (data, response) = try await dataRequestHandler(request)
168+
try check(response: response)
169+
if let str = String(data: data, encoding: .utf8) {
170+
print(str)
171+
}
172+
return try JSONDecoder().decode(FetchRecordResponse.self, from: data)
173+
}
174+
158175
@discardableResult
159176
public func submitRecord(
160177
appID: Int,

0 commit comments

Comments
 (0)