-
Notifications
You must be signed in to change notification settings - Fork 0
/
api.php
94 lines (80 loc) · 2.04 KB
/
api.php
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
<?php
require(__DIR__ . '/vendor/autoload.php');
use MongoDB\Client;
$return = function ($response = [], $code = 200) {
header('Content-Type:Application/json; Charset=utf-8');
die(json_encode([
'code' => $code,
'message' => 'OK',
'result' => $response
],JSON_UNESCAPED_UNICODE)
);
};
$mongo = function ($host = 'mongodb://127.0.0.1:27017', $database = 'env-loose') {
$client = new Client($host);
$database = $client->selectDatabase($database);
return $database;
};
$loadEnv = function () {
return parse_ini_file(__DIR__ . '/.env', true);
};
$request = json_decode(
file_get_contents('php://input'),
true
);
/*-------------- operation data ------------*/
if ($request['api'] === 'getProject') {
$name = $loadEnv()['project']['name'];
if (! $name) {
return [];
}
foreach ($name as &$v) {
$value = $v;
$v = [];
$v['value'] = $value;
$v['label'] = $value;
}
unset($v);
$return([
'list' => $name
]);
}
$host = $loadEnv()['mongo']['host'];
if ($request['api'] === 'get') {
$res = $mongo($host)->data->findOne([
'env' => $request['env'],
'project' => $request['project']
]);
if (! $res) {
$res['checkbox'] = [];
}
$return([
'checkbox' => $res['checkbox']
]);
}
if ($request['api'] === 'update') {
$res = $mongo($host)->data->findOne([
'env' => $request['env'],
'project' => $request['project']
]);
if (! $res) {
$res = $mongo($host)->data->insertOne([
'env' => $request['env'],
'project' => $request['project'],
'checkbox' => $request['checkbox']
]);
$return();
}
$res = $mongo($host)->data->findOneAndUpdate([
'env' => $request['env'],
'project' => $request['project']
],
[
'$set' => ['checkbox' => $request['checkbox']]
]
);
if (! $res) {
$return([], 500);
}
$return();
}