1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use super::*;
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum CibouletteResponseStatus {
Ok,
OkEmpty,
OkAsync,
Created,
Unsupported,
NotFound,
Conflict,
}
impl CibouletteResponseStatus {
pub fn is_success(&self) -> bool {
match self {
CibouletteResponseStatus::Ok
| CibouletteResponseStatus::OkEmpty
| CibouletteResponseStatus::OkAsync
| CibouletteResponseStatus::Created => true,
CibouletteResponseStatus::Unsupported
| CibouletteResponseStatus::NotFound
| CibouletteResponseStatus::Conflict => false,
}
}
pub fn get_status_for_ok_response<'request, 'response, B>(
request: &dyn CibouletteRequestCommons<'request>,
response_body: &CibouletteResponseBody<'response, B>,
) -> Self {
match (request.intention(), response_body.data()) {
(CibouletteIntention::Create, CibouletteOptionalData::Object(_)) => {
CibouletteResponseStatus::Created
}
(CibouletteIntention::Create, CibouletteOptionalData::Null(_)) => {
CibouletteResponseStatus::Ok
}
(CibouletteIntention::Delete, _) => CibouletteResponseStatus::Ok,
(CibouletteIntention::Read, CibouletteOptionalData::Object(_)) => {
CibouletteResponseStatus::Ok
}
(CibouletteIntention::Read, CibouletteOptionalData::Null(_)) => {
CibouletteResponseStatus::NotFound
}
(CibouletteIntention::Update, CibouletteOptionalData::Object(_)) => {
CibouletteResponseStatus::Ok
}
(CibouletteIntention::Update, CibouletteOptionalData::Null(_)) => {
CibouletteResponseStatus::Ok
}
}
}
}