@@ -17,20 +17,14 @@ use rocket::State;
1717
1818use crate :: endpoints:: { HttpErrorJson , ServerState } ;
1919
20- use aw_datastore:: DatastoreError ;
21-
2220#[ get( "/" ) ]
2321pub fn buckets_get (
2422 state : State < ServerState > ,
2523) -> Result < Json < HashMap < String , Bucket > > , HttpErrorJson > {
2624 let datastore = endpoints_get_lock ! ( state. datastore) ;
2725 match datastore. get_buckets ( ) {
2826 Ok ( bucketlist) => Ok ( Json ( bucketlist) ) ,
29- Err ( e) => {
30- let err_msg = format ! ( "Unexpected error: {:?}" , e) ;
31- warn ! ( "{}" , err_msg) ;
32- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
33- }
27+ Err ( err) => Err ( err. into ( ) ) ,
3428 }
3529}
3630
@@ -42,17 +36,7 @@ pub fn bucket_get(
4236 let datastore = endpoints_get_lock ! ( state. datastore) ;
4337 match datastore. get_bucket ( & bucket_id) {
4438 Ok ( bucket) => Ok ( Json ( bucket) ) ,
45- Err ( e) => match e {
46- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
47- Status :: NotFound ,
48- "The requested bucket does not exist" . to_string ( ) ,
49- ) ) ,
50- _ => {
51- let err_msg = format ! ( "Unexpected error: {:?}" , e) ;
52- warn ! ( "{}" , err_msg) ;
53- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
54- }
55- } ,
39+ Err ( e) => Err ( e. into ( ) ) ,
5640 }
5741}
5842
@@ -66,34 +50,11 @@ pub fn bucket_new(
6650 if bucket. id != bucket_id {
6751 bucket. id = bucket_id;
6852 }
69- // Cannot re-use endpoints_get_lock!() here because it returns Err(Status) on failure and this
70- // function returns a Response
71- let datastore = match state. datastore . lock ( ) {
72- Ok ( ds) => ds,
73- Err ( e) => {
74- warn ! ( "Taking datastore lock failed, returning 504: {}" , e) ;
75- return Err ( HttpErrorJson :: new (
76- Status :: ServiceUnavailable ,
77- "Takind datastore lock failed" . to_string ( ) ,
78- ) ) ;
79- }
80- } ;
53+ let datastore = endpoints_get_lock ! ( state. datastore) ;
8154 let ret = datastore. create_bucket ( & bucket) ;
8255 match ret {
8356 Ok ( _) => Ok ( ( ) ) ,
84- Err ( err) => match err {
85- DatastoreError :: BucketAlreadyExists => Err ( HttpErrorJson :: new (
86- Status :: NotModified ,
87- "Bucket already exists" . to_string ( ) ,
88- ) ) ,
89- _ => {
90- warn ! ( "Unexpected error: {:?}" , err) ;
91- Err ( HttpErrorJson :: new (
92- Status :: InternalServerError ,
93- format ! ( "{:?}" , err) ,
94- ) )
95- }
96- } ,
57+ Err ( err) => Err ( err. into ( ) ) ,
9758 }
9859}
9960
@@ -137,17 +98,7 @@ pub fn bucket_events_get(
13798 let res = datastore. get_events ( & bucket_id, starttime, endtime, limit) ;
13899 match res {
139100 Ok ( events) => Ok ( Json ( events) ) ,
140- Err ( err) => match err {
141- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
142- Status :: NotFound ,
143- "The requested bucket does not exist" . to_string ( ) ,
144- ) ) ,
145- e => {
146- let err_msg = format ! ( "Failed to fetch events: {:?}" , e) ;
147- warn ! ( "{}" , err_msg) ;
148- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
149- }
150- } ,
101+ Err ( err) => Err ( err. into ( ) ) ,
151102 }
152103}
153104
@@ -161,17 +112,7 @@ pub fn bucket_events_create(
161112 let res = datastore. insert_events ( & bucket_id, & events) ;
162113 match res {
163114 Ok ( events) => Ok ( Json ( events) ) ,
164- Err ( e) => match e {
165- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
166- Status :: NotFound ,
167- "The requested bucket does not exist" . to_string ( ) ,
168- ) ) ,
169- e => {
170- let err_msg = format ! ( "Failed to create event(s): {:?}" , e) ;
171- warn ! ( "{}" , err_msg) ;
172- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
173- }
174- } ,
115+ Err ( err) => Err ( err. into ( ) ) ,
175116 }
176117}
177118
@@ -190,17 +131,7 @@ pub fn bucket_events_heartbeat(
190131 let datastore = endpoints_get_lock ! ( state. datastore) ;
191132 match datastore. heartbeat ( & bucket_id, heartbeat, pulsetime) {
192133 Ok ( e) => Ok ( Json ( e) ) ,
193- Err ( err) => match err {
194- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
195- Status :: NotFound ,
196- "The requested bucket does not exist" . to_string ( ) ,
197- ) ) ,
198- err => {
199- let err_msg = format ! ( "Heartbeat failed: {:?}" , err) ;
200- warn ! ( "{}" , err_msg) ;
201- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
202- }
203- } ,
134+ Err ( err) => Err ( err. into ( ) ) ,
204135 }
205136}
206137
@@ -213,17 +144,7 @@ pub fn bucket_event_count(
213144 let res = datastore. get_event_count ( & bucket_id, None , None ) ;
214145 match res {
215146 Ok ( eventcount) => Ok ( Json ( eventcount as u64 ) ) ,
216- Err ( e) => match e {
217- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
218- Status :: NotFound ,
219- "The requested bucket does not exist" . to_string ( ) ,
220- ) ) ,
221- e => {
222- let err_msg = format ! ( "Failed to count events: {:?}" , e) ;
223- warn ! ( "{}" , err_msg) ;
224- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
225- }
226- } ,
147+ Err ( err) => Err ( err. into ( ) ) ,
227148 }
228149}
229150
@@ -236,17 +157,7 @@ pub fn bucket_events_delete_by_id(
236157 let datastore = endpoints_get_lock ! ( state. datastore) ;
237158 match datastore. delete_events_by_id ( & bucket_id, vec ! [ event_id] ) {
238159 Ok ( _) => Ok ( ( ) ) ,
239- Err ( err) => match err {
240- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
241- Status :: NotFound ,
242- "The requested bucket does not exist" . to_string ( ) ,
243- ) ) ,
244- err => {
245- let err_msg = format ! ( "Delete events by id failed: {:?}" , err) ;
246- warn ! ( "{}" , err_msg) ;
247- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
248- }
249- } ,
160+ Err ( err) => Err ( err. into ( ) ) ,
250161 }
251162}
252163
@@ -261,19 +172,7 @@ pub fn bucket_export(
261172 } ;
262173 let mut bucket = match datastore. get_bucket ( & bucket_id) {
263174 Ok ( bucket) => bucket,
264- Err ( err) => match err {
265- DatastoreError :: NoSuchBucket => {
266- return Err ( HttpErrorJson :: new (
267- Status :: NotFound ,
268- "The requested bucket does not exist" . to_string ( ) ,
269- ) )
270- }
271- e => {
272- let err_msg = format ! ( "Failed to fetch events: {:?}" , e) ;
273- warn ! ( "{}" , err_msg) ;
274- return Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) ) ;
275- }
276- } ,
175+ Err ( err) => return Err ( err. into ( ) ) ,
277176 } ;
278177 bucket. events = Some (
279178 datastore
@@ -298,16 +197,6 @@ pub fn bucket_delete(bucket_id: String, state: State<ServerState>) -> Result<(),
298197 let datastore = endpoints_get_lock ! ( state. datastore) ;
299198 match datastore. delete_bucket ( & bucket_id) {
300199 Ok ( _) => Ok ( ( ) ) ,
301- Err ( e) => match e {
302- DatastoreError :: NoSuchBucket => Err ( HttpErrorJson :: new (
303- Status :: NotFound ,
304- "The requested bucket does not exist" . to_string ( ) ,
305- ) ) ,
306- e => {
307- let err_msg = format ! ( "Failed to delete bucket: {:?}" , e) ;
308- warn ! ( "{}" , err_msg) ;
309- Err ( HttpErrorJson :: new ( Status :: InternalServerError , err_msg) )
310- }
311- } ,
200+ Err ( err) => Err ( err. into ( ) ) ,
312201 }
313202}
0 commit comments