+8
-5
slingshot/src/server.rs
+8
-5
slingshot/src/server.rs
···
74
74
///
75
75
/// Slingshot will always return the CID, despite it not being a required
76
76
/// response property in the official lexicon.
77
+
///
78
+
/// TODO: probably actually let it be optional, idk are some pds's weirdly
79
+
/// not returning it?
77
80
cid: Option<String>,
78
81
/// the record itself as JSON
79
82
value: serde_json::Value,
···
111
114
/// The only error name in the repo.getRecord lexicon is `RecordNotFound`,
112
115
/// but the [canonical api docs](https://docs.bsky.app/docs/api/com-atproto-repo-get-record)
113
116
/// also list `InvalidRequest`, `ExpiredToken`, and `InvalidToken`. Of
114
-
/// these, slingshot will only return `RecordNotFound` or `InvalidRequest`.
117
+
/// these, slingshot will only generate `RecordNotFound` or `InvalidRequest`,
118
+
/// but may return any proxied error code from the upstream repo.
115
119
#[oai(status = 400)]
116
120
BadRequest(XrpcError),
117
-
/// Just using 500 for potentially upstream errors for now
121
+
/// Server errors
118
122
#[oai(status = 500)]
119
123
ServerError(XrpcError),
120
124
}
···
131
135
///
132
136
/// Get a single record from a repository. Does not require auth.
133
137
///
134
-
/// See https://docs.bsky.app/docs/api/com-atproto-repo-get-record for the
135
-
/// canonical XRPC documentation that this endpoint aims to be compatible
136
-
/// with.
138
+
/// See also the [canonical `com.atproto` XRPC documentation](https://docs.bsky.app/docs/api/com-atproto-repo-get-record)
139
+
/// that this endpoint aims to be compatible with.
137
140
#[oai(path = "/com.atproto.repo.getRecord", method = "get")]
138
141
async fn get_record(
139
142
&self,