1
1
// import libraries //
2
- const axios = require ( 'axios' ) ;
3
- const Joi = require ( 'joi' ) ;
2
+ const axios = require ( 'axios' )
3
+ const Joi = require ( 'joi' )
4
4
5
5
// define validation schema for payload processing //
6
6
const validationSchema = Joi . object ( {
@@ -10,42 +10,41 @@ const validationSchema = Joi.object({
10
10
key : Joi . string ( ) . required ( ) ,
11
11
start_date : Joi . date ( ) . less ( Joi . ref ( 'end_date' ) ) ,
12
12
thumbs : Joi . boolean ( )
13
- } ) ;
13
+ } )
14
14
15
15
// Astronomy Picture of the Day //
16
- const apod = function ( payload , callback ) {
17
-
16
+ const apod = function ( payload , callback ) {
18
17
// validate the payload input //
19
- const { error, value } = validationSchema . validate ( payload ) ;
20
- if ( error ) throw error ;
18
+ const { error } = validationSchema . validate ( payload )
19
+ if ( error ) throw error
21
20
22
- if ( payload . date && ( payload . start_date || payload . end_date ) ) throw new Error ( 'If using Date, you cannot also use Start Date or End Date' ) ;
23
- if ( payload . end_date && ! payload . start_date ) throw new Error ( 'Start Date must be included if using End Date' ) ;
24
- if ( payload . count && ( payload . start_date || payload . end_date ) ) throw new Error ( 'If using count, you cannot use Start Date or End Date' ) ;
21
+ if ( payload . date && ( payload . start_date || payload . end_date ) ) throw new Error ( 'If using Date, you cannot also use Start Date or End Date' )
22
+ if ( payload . end_date && ! payload . start_date ) throw new Error ( 'Start Date must be included if using End Date' )
23
+ if ( payload . count && ( payload . start_date || payload . end_date ) ) throw new Error ( 'If using count, you cannot use Start Date or End Date' )
25
24
26
25
// define API variables //
27
- let requestURLParameters = `api_key=${ payload . key } ` ;
28
- if ( payload . date ) requestURLParameters = requestURLParameters . concat ( `&date=${ payload . date } ` ) ;
29
- if ( payload . start_date ) requestURLParameters = requestURLParameters . concat ( `&start_date=${ payload . start_date } ` ) ;
30
- if ( payload . end_date ) requestURLParameters = requestURLParameters . concat ( `&end_date=${ payload . end_date } ` ) ;
31
- if ( payload . count ) requestURLParameters = requestURLParameters . concat ( `&count=${ payload . count } ` ) ;
32
- if ( payload . thumbs ) requestURLParameters = requestURLParameters . concat ( `&thumbs=${ payload . thumbs } ` ) ;
26
+ let requestURLParameters = `api_key=${ payload . key } `
27
+ if ( payload . date ) requestURLParameters = requestURLParameters . concat ( `&date=${ payload . date } ` )
28
+ if ( payload . start_date ) requestURLParameters = requestURLParameters . concat ( `&start_date=${ payload . start_date } ` )
29
+ if ( payload . end_date ) requestURLParameters = requestURLParameters . concat ( `&end_date=${ payload . end_date } ` )
30
+ if ( payload . count ) requestURLParameters = requestURLParameters . concat ( `&count=${ payload . count } ` )
31
+ if ( payload . thumbs ) requestURLParameters = requestURLParameters . concat ( `&thumbs=${ payload . thumbs } ` )
33
32
34
33
// request url //
35
- const request = `https://api.nasa.gov/planetary/apod?${ requestURLParameters } ` ;
34
+ const request = `https://api.nasa.gov/planetary/apod?${ requestURLParameters } `
36
35
37
36
// api request //
38
37
return axios ( request )
39
- . then ( ( response ) => {
40
- try {
41
- callback ( response . data ) ;
42
- return response . data ;
43
- }
44
- catch ( error ) {
45
- callback ( response . data ) ;
46
- return response . data ;
47
- }
48
- } )
38
+ . then ( ( response ) => {
39
+ try {
40
+ callback ( response . data )
41
+ return response . data
42
+ } catch ( error ) {
43
+ callback ( response . data )
44
+ return response . data
45
+ }
46
+ } )
49
47
}
50
48
51
- module . exports . apod = apod ;
49
+ // export module //
50
+ module . exports . apod = apod
0 commit comments