summaryrefslogtreecommitdiffstats
path: root/examples/example.js
blob: 26978aae3cf3ceef1ff5c3c32901b473b13b3922 (plain)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
var globalHeaders = [];
globalHeaders.push({"X-Test": "True"});
globalHeaders.push({"X-Test1": "False"});
var sg = require('../lib/sendgrid.js').SendGrid(process.env.SENDGRID_API_KEY, "api.sendgrid.com", globalHeaders)

// GET Collection
var emptyRequest = require('sendgrid-rest').request
var requestGet = JSON.parse(JSON.stringify(emptyRequest))
requestGet.method = 'GET'
requestGet.path = '/v3/api_keys'
requestGet.queryParams['limit'] = 100
requestGet.queryParams['offset'] = 0
sg.API(requestGet, function (response) {
  console.log(response.statusCode)
  console.log(response.responseBody)
  console.log(response.responseHeaders)
})

// POST
var requestBody = {
  'name': 'My API Key from Node.js',
  'scopes': [
    'mail.send',
    'alerts.create',
    'alerts.read'
  ]
}
var requestPost = JSON.parse(JSON.stringify(emptyRequest));
requestPost.method = 'POST'
requestPost.path = '/v3/api_keys'
requestPost.requestBody = requestBody
requestPost.headers['X-Test'] = 'test'
function createAPIKey (callback) {
  sg.API(requestPost, function (response) {
    console.log(response.statusCode)
    console.log(response.responseBody)
    console.log(response.responseHeaders)
    var body = JSON.parse(response.responseBody)
    callback(body.api_key_id)
  })
}

createAPIKey(function (returnValue) { // This ensures we POST a new key first, to get the api_key_id
  var api_key_id = '/'.concat(returnValue)

  // GET SINGLE
  var requestGetSingle = JSON.parse(JSON.stringify(emptyRequest))
  requestGetSingle.method = 'GET'
  requestGetSingle.path = '/v3/api_keys'.concat(api_key_id)
  sg.API(requestGetSingle, function (response) {
    console.log(response.statusCode)
    console.log(response.responseBody)
    console.log(response.responseHeaders)
  })

  // PATCH
  requestBody = {
    'name': 'A New Hope'
  }
  var requestPatch = JSON.parse(JSON.stringify(emptyRequest))
  requestPatch.method = 'PATCH'
  requestPatch.path = '/v3/api_keys'.concat(api_key_id)
  requestPatch.requestBody = requestBody
  sg.API(requestPatch, function (response) {
    console.log(response.statusCode)
    console.log(response.responseBody)
    console.log(response.responseHeaders)
  })

  // PUT
  requestBody = {
    'name': 'A New Hope',
    'scopes': [
      'user.profile.read',
      'user.profile.update'
    ]
  }
  var requestPut = JSON.parse(JSON.stringify(emptyRequest))
  requestPut.method = 'PUT'
  requestPut.path = '/v3/api_keys'.concat(api_key_id)
  requestPut.requestBody = requestBody
  sg.API(requestPut, function (response) {
    console.log(response.statusCode)
    console.log(response.responseBody)
    console.log(response.responseHeaders)
  })

  setTimeout(function() { // We need to wait until all the calls are made
    // DELETE
    var requestDelete = JSON.parse(JSON.stringify(emptyRequest))
    requestDelete.method = 'DELETE'
    requestDelete.path = '/v3/api_keys'.concat(api_key_id)
    sg.API(requestDelete, function (response) {
      console.log(response.statusCode)
      console.log(response.responseBody)
      console.log(response.responseHeaders)
    })
  }, 3000);
})