/
index.js
79 lines (76 loc) · 2.58 KB
/
index.js
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
68
69
70
71
72
73
74
75
76
77
78
79
/**
* Copyright 2016 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
// [START functionsimport]
const functions = require('firebase-functions');
// [END functionsimport]
// [START additionalimports]
// Moments library to format dates.
const moment = require('moment');
// CORS Express middleware to enable CORS Requests.
const cors = require('cors')({
origin: true,
});
// [END additionalimports]
// [START all]
/**
* Returns the server's date. You must provide a `format` URL query parameter or `format` value in
* the request body with which we'll try to format the date.
*
* Format must follow the Node moment library. See: http://momentjs.com/
*
* Example format: "MMMM Do YYYY, h:mm:ss a".
* Example request using URL query parameters:
* https://us-central1-<project-id>.cloudfunctions.net/date?format=MMMM%20Do%20YYYY%2C%20h%3Amm%3Ass%20a
* Example request using request body with cURL:
* curl -H 'Content-Type: application/json' /
* -d '{"format": "MMMM Do YYYY, h:mm:ss a"}' /
* https://us-central1-<project-id>.cloudfunctions.net/date
*
* This endpoint supports CORS.
*/
// [START trigger]
exports.date = functions.https.onRequest((req, res) => {
// [END trigger]
// [START sendError]
// Forbidding PUT requests.
if (req.method === 'PUT') {
res.status(403).send('Forbidden!');
return;
}
// [END sendError]
// [START usingMiddleware]
// Enable CORS using the `cors` express middleware.
cors(req, res, () => {
// [END usingMiddleware]
// Reading date format from URL query parameter.
// [START readQueryParam]
let format = req.query.format;
// [END readQueryParam]
// Reading date format from request body query parameter
if (!format) {
// [START readBodyParam]
format = req.body.format;
// [END readBodyParam]
}
// [START sendResponse]
const formattedDate = moment().format(`${format}`);
functions.logger.log('Sending Formatted date:', formattedDate);
res.status(200).send(formattedDate);
// [END sendResponse]
});
});
// [END all]