|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace App\Models; |
|
4
|
|
|
|
|
5
|
|
|
use Illuminate\Database\Eloquent\Model; |
|
6
|
|
|
use Illuminate\Support\Facades\DB; |
|
7
|
|
|
use Illuminate\Http\Response; |
|
8
|
|
|
|
|
9
|
|
|
class ResponseModel extends Model |
|
10
|
|
|
{ |
|
11
|
|
|
public static function success($statusCode=200, $desc=null, $data=null) |
|
12
|
|
|
{ |
|
13
|
|
|
if (($statusCode>=1000)) { |
|
14
|
|
|
$statusCode=200; |
|
15
|
|
|
} |
|
16
|
|
|
$output=[ |
|
17
|
|
|
'ret' => $statusCode, |
|
18
|
|
|
'desc' => is_null($desc) ? self::desc($statusCode) : $desc, |
|
19
|
|
|
'data' => $data |
|
20
|
|
|
]; |
|
21
|
|
|
return response()->json($output); |
|
22
|
|
|
} |
|
23
|
|
|
|
|
24
|
|
|
public static function err($statusCode, $desc=null, $data=null) |
|
25
|
|
|
{ |
|
26
|
|
|
if (($statusCode<1000)) { |
|
27
|
|
|
$statusCode=1000; |
|
28
|
|
|
} |
|
29
|
|
|
$output=[ |
|
30
|
|
|
'ret' => $statusCode, |
|
31
|
|
|
'desc' => is_null($desc) ? self::desc($statusCode) : $desc, |
|
32
|
|
|
'data' => $data |
|
33
|
|
|
]; |
|
34
|
|
|
return response()->json($output); |
|
35
|
|
|
} |
|
36
|
|
|
|
|
37
|
|
|
private static function desc($errCode) |
|
38
|
|
|
{ |
|
39
|
|
|
$errDesc=[ |
|
40
|
|
|
|
|
41
|
|
|
'200' => "Successful", |
|
42
|
|
|
'201' => "Partially Successful", |
|
43
|
|
|
'403' => "Forbidden", |
|
44
|
|
|
'451' => "Unavailable For Legal Reasons", |
|
45
|
|
|
|
|
46
|
|
|
'1000' => "Unspecified Response", /** Under normal condictions those errors shouldn't been displayed to end users |
|
47
|
|
|
* unless they attempt to do so, some submissions should be intercepted |
|
48
|
|
|
* by the frontend before the request sended |
|
49
|
|
|
*/ |
|
50
|
|
|
'1001' => "Internal Sever Error", |
|
51
|
|
|
'1002' => "Service Currently Unavailable", |
|
52
|
|
|
'1003' => "Missing Params", |
|
53
|
|
|
'1004' => "Write/Read Permission Denied", |
|
54
|
|
|
'1005' => "Invalid File", |
|
55
|
|
|
'1006' => "Invalid length params", |
|
56
|
|
|
'1007' => "Invalid parameter passed", |
|
57
|
|
|
'1984' => "Ignorance is Strength", |
|
58
|
|
|
|
|
59
|
|
|
'2000' => "Account-Related Error", |
|
60
|
|
|
'2001' => "Permission Denied", |
|
61
|
|
|
'2002' => "Please Login First", |
|
62
|
|
|
'2003' => "A user with the same username already exists", |
|
63
|
|
|
'2004' => "New passwords do not match", |
|
64
|
|
|
'2005' => "Old passwords error", |
|
65
|
|
|
'2006' => "Can't find this user", |
|
66
|
|
|
|
|
67
|
|
|
'3000' => "Problem-Related Error", |
|
68
|
|
|
'3001' => "Problem Not Found", |
|
69
|
|
|
'3002' => "Submission Size Limit Exceed(64kb max)", |
|
70
|
|
|
'3003' => "Duplicate Problem Solution Submitted", |
|
71
|
|
|
'3004' => "Certain Problem Solution not Operatable", |
|
72
|
|
|
'3005' => "Copper", // Reserved for Copper in memory of OASIS and those who contributed a lot |
|
73
|
|
|
|
|
74
|
|
|
'4000' => "Contest-Related Error", |
|
75
|
|
|
'4001' => "Contest Not Found", |
|
76
|
|
|
'4002' => "Too Much Problems", |
|
77
|
|
|
'4003' => "No Need for Registration", |
|
78
|
|
|
'4004' => "Registration Ended", |
|
79
|
|
|
'4005' => "Registration Denied", |
|
80
|
|
|
'4006' => "AlreadyRegistered", |
|
81
|
|
|
'4007' => "A contest cannot be both a public and a practice contest", |
|
82
|
|
|
'4008' => "The contest is not over.", |
|
83
|
|
|
'4009' => 'Only freeze contest can join scrollboard', |
|
84
|
|
|
'4010' => 'Contest Still Under Judging.', |
|
85
|
|
|
|
|
86
|
|
|
'5000' => "Status-Related Error", |
|
87
|
|
|
'5001' => "Status Not Found", |
|
88
|
|
|
|
|
89
|
|
|
'6000' => "Submission-Related Error", |
|
90
|
|
|
'6001' => "Cannot Find Available Judgers", |
|
91
|
|
|
'6002' => "Sharing Method Not Allowed", |
|
92
|
|
|
'6003' => "No Need to Resubmit", |
|
93
|
|
|
|
|
94
|
|
|
'7000' => "Group-Related Error", |
|
95
|
|
|
'7001' => "Group Not Found", |
|
96
|
|
|
'7002' => "Insufficient Clearance", |
|
97
|
|
|
'7003' => "No Need to Approve", |
|
98
|
|
|
'7004' => "Group Member Not Found", |
|
99
|
|
|
'7005' => "Don't play just for fun",//gcode=="create" |
|
100
|
|
|
'7006' => "A group with the same gcode already exists", |
|
101
|
|
|
'7007' => "Group Problem Tag Exist", |
|
102
|
|
|
'7008' => "The group leader cannot leave the group", |
|
103
|
|
|
|
|
104
|
|
|
'8000' => "Job-Related Error", |
|
105
|
|
|
'8001' => "Job Still Running", |
|
106
|
|
|
|
|
107
|
|
|
'9000' => "Abuse-Related Error", |
|
108
|
|
|
'9001' => "Abuse Invalid", |
|
109
|
|
|
|
|
110
|
|
|
'10000' => "Dojo-Related Error", |
|
111
|
|
|
'10001' => "Dojo Cannot Complete", |
|
112
|
|
|
'10002' => "Dojo Not Found", |
|
113
|
|
|
]; |
|
114
|
|
|
return isset($errDesc[$errCode]) ? $errDesc[$errCode] : $errDesc['1000']; |
|
115
|
|
|
} |
|
116
|
|
|
} |
|
117
|
|
|
|