Exemplo n.º 1
0
use App\Util;
// Api Start2
$app->post('/start2/upload', function (Request $request) {
    $rules = ['password' => 'required|alpha_dash|between:5,50', 'data' => 'required|json'];
    $validator = Validator::make($request->all(), $rules);
    if ($validator->fails()) {
        return Util::errorResponse('data invalid');
    }
    $inputs = $request->all();
    if (env('ADMIN_PASSWORD', 'admin') !== $inputs['password']) {
        return Util::errorResponse('incorrect password');
    }
    $start2 = json_decode($inputs['data'], true);
    if (Util::exists('api_start2.json')) {
        $data = Util::load('api_start2.json');
        if (Util::compareJson($data, $start2)) {
            return Util::errorResponse('duplicate start2 data');
        }
    }
    Util::dump('api_start2.json', $start2);
    $datetime = new DateTime();
    $today = $datetime->format('YmdH');
    Util::dump("start2/{$today}.json", $start2);
    Queue::push(function ($job) {
        Artisan::call('parse:start2');
        $job->delete();
    });
    return Util::successResponse();
});
$app->get('/start2', function () {
    try {
Exemplo n.º 2
0
 /**
  * @param mixed $srcJson
  * @param mixed $dstJson
  * @return bool
  */
 public static function compareJson($srcJson, $dstJson)
 {
     if (!is_array($srcJson) && !is_array($dstJson)) {
         return $srcJson === $dstJson;
     }
     if (!is_array($srcJson) && is_array($dstJson) || is_array($srcJson) && !is_array($dstJson)) {
         return false;
     }
     foreach ($srcJson as $key => $value) {
         if (!array_key_exists($key, $dstJson)) {
             return false;
         }
         if (is_array($value)) {
             if (!is_array($dstJson[$key])) {
                 return false;
             }
             if (Util::compareJson($srcJson[$key], $dstJson[$key])) {
                 continue;
             } else {
                 return false;
             }
         }
         if ($value !== $dstJson[$key]) {
             return false;
         }
     }
     return true;
 }