UNPKG

1.82 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.10.0
2(function() {
3 var prompt, request, signup;
4
5 prompt = require('prompt');
6
7 request = require('request');
8
9 signup = function() {
10 var crystal;
11 console.log("Ready to signup? Let's go!");
12 crystal = this;
13 prompt.message = '';
14 prompt.delimiter = '';
15 prompt.start();
16 return prompt.get({
17 properties: {
18 email: {
19 description: 'Enter your email',
20 required: true,
21 type: 'string'
22 },
23 username: {
24 description: 'Enter your username',
25 required: true,
26 type: 'string'
27 },
28 password: {
29 description: 'Enter your password',
30 hidden: true,
31 required: true,
32 type: 'string'
33 }
34 }
35 }, function(err, result) {
36 if (!result) {
37 throw new Error('Email/Username/Password are required.');
38 }
39 if (!result.email) {
40 throw new Error('Email is required.');
41 }
42 if (!result.username) {
43 throw new Error('Username is required.');
44 }
45 if (!result.password) {
46 throw new Error('Password is required.');
47 }
48 crystal.cache('username', result.username);
49 return request.post({
50 formData: {
51 email: result.email,
52 username: result.username,
53 password: result.password
54 },
55 url: crystal.url('api', 'users')
56 }, function(err, resp, body) {
57 if (!err && resp.statusCode === 200) {
58 return console.log("Thanks for signing up!");
59 } else if (body.match('duplicate')) {
60 return console.log("Username already in use. Please try again!");
61 } else {
62 return console.log("Unable to signup.");
63 }
64 });
65 });
66 };
67
68 module.exports = signup;
69
70}).call(this);