This repository has been archived by the owner on Jun 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
forms.js
88 lines (75 loc) · 2.31 KB
/
forms.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
80
81
82
83
84
85
86
87
88
#!/usr/bin/env node
const fs = require('fs');
const glob = require('glob');
const request = require('request-promise-native');
const prompt = require('prompt');
const PATH_TO_SEARCH = 'forms/';
const SERVER = 'http://localhost:5000';
prompt.override = require('yargs').argv;
prompt.start();
var schema = {
properties: {
name: {
pattern: /^[a-zA-Z\s\-]+$/,
message: 'Name must be only letters, spaces, or dashes',
required: true,
default: 'dalius',
},
password: {
hidden: true,
},
server: {
message: 'Server to upload icons to',
required: true,
default: SERVER,
},
},
};
prompt.get(schema, function(err, result) {
uploadImages(result.name, result.password, result.server);
});
const uploadImages = async (username, password, server) => {
const svgs = glob.sync(PATH_TO_SEARCH + '*.svg');
let accessToken = null;
try {
const form = {
username,
password,
};
const resp = await request.post({ url: `${server}/api/tokens`, form, json: true });
accessToken = resp['accessToken'];
} catch (err) {
console.error('Upload failed:', err);
return;
}
if (accessToken === undefined) {
console.error('Token is undefined.');
return;
}
for (const image of svgs) {
let name = image.substring(PATH_TO_SEARCH.length).replace(/\//g, ' ');
name = name.replace('.svg', '');
console.log(`Processing ${name}.`);
const svg_data = fs.readFileSync(image, 'utf8');
try {
const formData = {
global: 'true',
name: `forms_${name}`,
metadata: JSON.stringify({ source: 'forms' }),
image: {
value: svg_data,
options: {
filename: name + '.svg',
},
},
};
const headers = {
Authorization: `Bearer ${accessToken}`,
};
const resp = await request.post({ url: `${server}/api/images`, headers, formData });
console.log(resp);
} catch (err) {
console.error('Upload failed:', err.statusCode);
}
}
};