Skip to content

Commit dd730e1

Browse files
authored
Merge pull request #9 from cjy513203427/bugfix
fix Json parse error for POST and PUT
2 parents 4ff335b + 2cd8616 commit dd730e1

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/Sample/PersonREST.cls

+13-11
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ ClassMethod GetPerson(id As %Integer) As %Status
8282

8383
Set person = ##class(Sample.Person).%OpenId(id)
8484

85-
If '$IsObject(person) Quit ..Http404()
85+
If '$IsObject(person) Quit ..ReportHttpStatusCode()
8686

8787
Do person.%JSONExport()
8888

@@ -92,21 +92,22 @@ ClassMethod GetPerson(id As %Integer) As %Status
9292
/// Creates a new Sample.Person record
9393
ClassMethod CreatePerson() As %Status
9494
{
95-
#dim tSC As %Status = $$$OK
95+
#dim tSC As %Status = $$$OK
9696
#dim e As %Exception.AbstractException
97+
9798
Set person = ##class(Sample.Person).%New()
98-
Set data = {}.%FromJSON(%request.Content)
99+
Set requestContent = %request.Content
100+
Set requestContentStr = requestContent.%ToJSON()
101+
Set data = {}.%FromJSON(requestContentStr)
99102

100-
101-
$$$TOE(tSC,person.%JSONImport(data))
102-
$$$TOE(tSC,person.%Save())
103+
$$$TOE(tSC, person.%JSONImport(data))
104+
$$$TOE(tSC, person.%Save())
103105

104106
Set %response.Status = 204
105107
Set %response.ContentType = ..#CONTENTTYPEJSON
106-
//d data.%ToJSON()
107108
Do person.%JSONExport()
108109

109-
Quit tSC
110+
QUIT tSC
110111
}
111112

112113
/// Update a record in Sample.Person with id
@@ -115,9 +116,11 @@ ClassMethod UpdatePerson(id As %Integer) As %Status
115116
#dim tSC As %Status = $$$OK
116117
#dim e As %Exception.AbstractException
117118
Set person = ##class(Sample.Person).%OpenId(id)
118-
If '$IsObject(person) Return ..Http404()
119-
Set data = {}.%FromJSON(%request.Content)
119+
If '$IsObject(person) Return ..ReportHttpStatusCode()
120120

121+
Set requestContent = %request.Content
122+
Set requestContentStr = requestContent.%ToJSON()
123+
Set data = {}.%FromJSON(requestContentStr)
121124

122125
$$$TOE(tSC,person.%JSONImport(data))
123126
$$$TOE(tSC,person.%Save())
@@ -141,7 +144,6 @@ ClassMethod DeletePerson(id As %Integer) As %Status
141144
$$$TOE(tSC,person.%DeleteId(id))
142145

143146
Set %response.Status = 200
144-
145147
Set %response.ContentType = ..#CONTENTTYPEJSON
146148

147149
Quit tSC

0 commit comments

Comments
 (0)