-
Notifications
You must be signed in to change notification settings - Fork 32
/
CaseManager
54 lines (46 loc) · 1.72 KB
/
CaseManager
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
@RestResource(urlMapping='/Cases/*')
global with sharing class CaseManager {
@HttpGet
global static Case getCaseById(){
RestRequest request=RestContext.request;
String caseId= request.requestURI.substring(request.requestURI.lastIndexOf('/')+1);
Case result= [Select CaseNumber,Subject,Status,Origin,Priority From Case where Id=:caseId];
return result;
}
@HttpPost
global static Id createCase(String subj,String sta,String ori,String pri)
{
Case thisCase=new Case(Subject=subj,Status=sta,Origin=ori,Priority=pri);
insert thisCase;
return thisCase.Id;
}
@HttpDelete
global static void deleteCase()
{
RestRequest request=RestContext.request;
String caseId= request.requestURI.substring(request.requestURI.lastIndexOf('/')+1);
Case thisCase=[Select Id from Case where id=:caseId];
delete thisCase;
}
@HttpPut
global static ID upsertCase(String sub,String sta,String ori,String pri,String id)
{
Case thisCase=new Case(Id=id,Subject=sub,status=sta,origin=ori,priority=pri);
upsert thisCase;
return thisCase.Id;
}
@HttpPatch
global static ID updateCaseFields()
{
RestRequest request=RestContext.request;
String caseId= request.requestURI.substring(request.requestURI.lastIndexOf('/')+1);
Case thisCase=[select Id from case where Id=:caseId];
Map<String,Object> params= ( Map<String,Object>)JSON.deserializeUntyped(request.requestBody.toString());
for(String fieldName:params.keySet())
{
thisCase.put(fieldName,params.get(fieldName));
}
update thisCase;
return thisCase.Id;
}
}