Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5048 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   sdk_opr_json.asp
5
'   Ajax support for SDK operations
6
'       addNew          - New SDK Name
7
'       updateEntry     - Update Sdk Name
8
'       getData         - Get single Sdk Name Entry
9
'=====================================================
10
%>
11
<%
12
Option explicit
5049 dpurdie 13
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
14
Response.ContentType = "text/html"
15
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
16
Response.CodePage = 65001
17
Response.CharSet = "UTF-8"
5048 dpurdie 18
%>
19
<!--#include file="common/conf.asp"-->
20
<!--#include file="common/globals.asp"-->
21
<!--#include file="common/qstr.asp"-->
22
<!--#include file="common/common_subs.asp"-->
23
<!--#include file="_access_control_general.asp"-->
24
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
25
<%
26
'------------ Variable Definition -------------
27
Dim parOpr
28
Dim result
29
Dim SqlQry
30
Dim rsQry
31
 
32
parOpr = QStrPar("action")
33
result = -1
34
 
35
' Init the output JSON class
36
'   Operations can add data
37
'   Default data will be added at the end
38
Dim oJSON
39
Set oJSON = New aspJSON
40
Dim newitem
41
 
42
Function canModify
5061 dpurdie 43
    canModify = canActionControlInProject("CreateNewProject")
5048 dpurdie 44
    If NOT canModify Then
45
        result = -4
46
        oJSON.data("error") = 1
47
        oJSON.data("emsgSummary") = "Permission denied"
48
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
49
    End If
50
End Function
51
 
52
'   
53
'   Perform the body of the operations within a Sub and use
54
'   On Error Resule Next to catch errors that accur in the code
55
'
56
On Error Resume Next
57
If (parOpr = "addNew") Then
58
    If canModify() Then addNewEntry
59
 
60
ElseIf (parOpr = "getData") Then
61
     getData
62
 
63
ElseIf (parOpr = "updateEntry") Then
64
    If canModify() Then updateEntry
65
 
5049 dpurdie 66
ElseIf (parOpr = "getSdkNames") Then
67
    getSdkNames
68
 
5053 dpurdie 69
ElseIf (parOpr = "getSdkDetails") Then
70
    getSdkDetails
71
 
5050 dpurdie 72
ElseIf (parOpr = "getSdkVersions") Then
73
    getSdkVersions
74
 
5052 dpurdie 75
ElseIf (parOpr = "getSdkVersionDetails") Then
76
    getSdkVersionDetails
77
 
5055 dpurdie 78
ElseIf (parOpr = "updateSdkVersionDetails") Then
79
    updateSdkVersionDetails
80
 
5049 dpurdie 81
ElseIf (parOpr = "getProjectList") Then
82
    getProjectList
83
 
84
ElseIf (parOpr = "getReleaseList") Then
85
    getReleaseList
86
 
87
ElseIf (parOpr = "addNewSdkVersion") Then
88
    addNewSdkVersion
89
 
5053 dpurdie 90
ElseIf (parOpr = "deleteSdkVersion") Then
91
    deleteSdkVersion
92
 
5052 dpurdie 93
ElseIf (parOpr = "setSdkState") Then
94
    setSdkState
95
 
5050 dpurdie 96
ElseIf (parOpr = "setSdkContentState") Then
97
    setSdkContentState
98
 
5048 dpurdie 99
Else
100
    oJSON.data("error") = 1
101
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
102
    oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOpr
103
End If
104
 
105
 
106
' SQL error detection and reporting
107
If objEH.LastOraFailed Then
108
    oJSON.data("error") = 1
109
    result = -1
110
 
111
    oJSON.data("emsgSummary") = objEH.MessageSummary
112
    oJSON.data("emsgDetails") = objEH.MessageDetails
113
    oJSON.data("SqlQry") = SqlQry
114
'
115
'   Detect program errors
116
ElseIf Err.number <> 0 Then
117
    result = -3
118
    oJSON.data("error") = 2
119
    oJSON.data("errnum") = Err.number
120
    oJSON.data("errtxt") = Err.description
121
    oJSON.data("errsrc") = Err.source
122
    oJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number &  ":" & Err.description
123
End If
5052 dpurdie 124
On error goto 0
5048 dpurdie 125
'Write single value
126
oJSON.data("result") = result
127
 
128
'function Sleep(seconds)
129
'    dim oshell, cmd
130
'    set oShell = CreateObject("Wscript.Shell")
131
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
132
'    oShell.Run cmd,0,1
133
'End function
134
'
135
'Sleep(2)
136
 
137
 
138
' DEBUG: A Hash of the user provided requests
139
<!--oJSON.data("QueryString") = Request.QueryString       -->
140
<!--                                                      -->
141
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
142
<!--Set oJSON.data("Request") = requestSet                -->
143
<!--Dim variableName                                      -->
144
<!--for each variableName in Request.QueryString          -->
145
<!--    requestSet.add variableName, Request(variableName)-->
146
<!--next                                                  -->
147
<!--for each variableName in Request.Form                 -->
148
<!--    requestSet.add variableName, Request(variableName)-->
149
<!--next                                                  -->
150
 
151
 
152
'Return the object
153
Response.Write oJSON.JSONoutput()
154
%>
155
<%
156
'-------------------------------------------------
157
' Function:    addNewEntry
158
' Description: Create a new SDK Name entry
159
Sub addNewEntry
160
 
161
    '   Add a new entry
162
    '
163
    '   Setup for the database access
164
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"), ORAPARM_INPUT, ORATYPE_VARCHAR2
165
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
166
 
167
     '  Test existance - simply to provide a Nice Error message
168
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME"
169
    objEH.ErrorRedirect = FALSE
170
    objEH.TryORA ( OraSession )
171
    On Error Resume Next
172
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
173
    objEH.CatchORA ( OraSession )
174
    On Error GoTo 0
175
 
176
    If rsQry.RecordCount <> 0 Then
177
        result = -3
178
        oJSON.data("error") = -1
179
        oJSON.data("emsgSummary") = "SDK Name already exists"
180
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
181
    Else
182
 
5049 dpurdie 183
        SqlQry = "INSERT INTO SDK_NAMES (SDK_NAME, SDK_COMMENT) VALUES (:SDKNAME, :SDKCOMMENT)"
5048 dpurdie 184
        objEH.ErrorRedirect = FALSE
185
        objEH.TryORA ( OraSession )
186
        On Error Resume Next
187
        OraDatabase.ExecuteSQL SqlQry
188
        objEH.CatchORA ( OraSession )
189
        On Error GoTo 0
190
 
191
        result = 0
192
    End If
193
    OraDatabase.Parameters.Remove "SDKCOMMENT"
194
    OraDatabase.Parameters.Remove "SDKNAME"
195
End Sub
196
 
197
'-------------------------------------------------
198
' Function:    getData
199
' Description: get data for a specified SDK Name
200
Sub getData
201
 
202
    '   Get Data for an existing entry
203
    '   Setup for the database access
204
    OraDatabase.Parameters.Add "SDKID",    QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
205
 
206
    SqlQry = "SELECT * from SDK_NAMES where SDK_ID=:SDKID"
207
 
208
    objEH.ErrorRedirect = FALSE
209
    objEH.TryORA ( OraSession )
210
    On Error Resume Next
211
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
212
    objEH.CatchORA ( OraSession )
213
    OraDatabase.Parameters.Remove "SDKID"
214
 
215
    Dim resultSet : Set resultSet = oJSON.Collection()
216
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
217
        Dim ii
218
        for ii = 0 to rsQry.Fields.Count - 1
219
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
220
        Next
221
        Set oJSON.data("aaData") = resultSet
222
        result = 0
223
    End If
224
    rsQry.Close
225
    Set rsQry = Nothing
226
End Sub
227
 
228
'-------------------------------------------------
229
' Function:    updateEntry
230
' Description: Update an exxisting SDK Names entry
231
Sub updateEntry
232
 
233
    '
234
    '
235
    OraDatabase.Parameters.Add "SDKID",      QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
236
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"), ORAPARM_INPUT, ORATYPE_VARCHAR2
237
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
238
 
239
    '  Test existance - simply to provide a Nice Error message
240
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME AND  SDK_ID != :SDKID"
241
    objEH.ErrorRedirect = FALSE
242
    objEH.TryORA ( OraSession )
243
    On Error Resume Next
244
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
245
    objEH.CatchORA ( OraSession )
246
    On Error GoTo 0
247
 
248
    If rsQry.RecordCount <> 0 Then
249
        result = -3
250
        oJSON.data("error") = -1
251
        oJSON.data("emsgSummary") = "SDK Name already exists"
252
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
253
    Else
254
        '   Update an existing entry
255
        SqlQry = "UPDATE SDK_NAMES SET SDK_NAME = :SDKNAME, SDK_COMMENT = :SDKCOMMENT WHERE SDK_ID = :SDKID"
256
        objEH.ErrorRedirect = FALSE
257
        objEH.TryORA ( OraSession )
258
        On Error Resume Next
259
        OraDatabase.ExecuteSQL SqlQry
260
        objEH.CatchORA ( OraSession )
261
        On Error GoTo 0
262
        result = 0
263
    End If
264
 
265
    OraDatabase.Parameters.Remove "SDKCOMMENT"
266
    OraDatabase.Parameters.Remove "SDKNAME"
267
    OraDatabase.Parameters.Remove "SDKID"
268
End Sub
5049 dpurdie 269
 
270
'-------------------------------------------------
271
' Function:    getSdkNames
272
' Description: Get Project information
273
'              Array of:
274
'               SDK_ID
275
'               SDK_NAME
276
 
277
Sub getSdkNames
278
    '   Get Data for an existing entry
279
    '   Setup for the database access
280
    SqlQry = "SELECT SDK_ID,SDK_NAME from SDK_NAMES order by SDK_NAME ASC"
281
 
282
    objEH.ErrorRedirect = FALSE
283
    objEH.TryORA ( OraSession )
284
    On Error Resume Next
285
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
286
    objEH.CatchORA ( OraSession )
287
 
288
    Set oJSON.data("aaData") = oJSON.Collection()
289
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
290
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
291
         Dim ii
292
        for ii = 0 to rsQry.Fields.Count - 1
293
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
294
        Next
295
 
296
       rsQry.MoveNext
297
    Wend
298
    result = 0
299
    rsQry.Close
300
    Set rsQry = Nothing
301
 
302
End Sub
303
 
5053 dpurdie 304
  '-------------------------------------------------
305
' Function:    getSdkDetails
306
' Description: Get Details for a specific SDK Family
307
'              Hash of:
308
'               Lots of stuff
309
'
310
' Options:      sdk_id  - SDK to get
311
 
312
Sub getSdkDetails
313
    '   Get Data for an existing entry
314
    '   Setup for the database access
315
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
316
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
317
    SqlQry = "SELECT * " &_
318
             "FROM SDK_NAMES " &_
319
             "WHERE SDK_ID = :SDK_ID"
320
 
321
    ' Perform Query
322
    objEH.ErrorRedirect = FALSE
323
    objEH.TryORA ( OraSession )
324
    On Error Resume Next
325
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
326
    objEH.CatchORA ( OraSession )
327
on error goto 0
328
    ' Process Results
329
    Dim resultSet : Set resultSet = oJSON.Collection()
330
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
331
        Dim ii
332
        for ii = 0 to rsQry.Fields.Count - 1
333
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
334
        Next
335
        Set oJSON.data("aaData") = resultSet
336
        result = 0
337
    End If
338
 
339
    result = 0
340
    rsQry.Close
341
    Set rsQry = Nothing
342
 
343
    OraDatabase.Parameters.Remove "SDK_ID"
344
End Sub
345
 
346
 
5050 dpurdie 347
'-------------------------------------------------
348
' Function:    getSdkVersions
349
' Description: Get SDK Versions information for a given family
350
'              Array of:
351
'               sdktag_id
352
'               sdktag_name
353
'               sdktag_state
354
'
355
' Options:      sdk_id  - Get versions for given sdk family
356
'               mode    - true: All Releases, otherwise only non-closed releases
5049 dpurdie 357
 
5050 dpurdie 358
Sub getSdkVersions
359
    '   Get Data for an existing entry
360
    '   Setup for the database access
361
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
362
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
363
 
364
    '
365
    '   Limit Selection to non-closed releases
366
    '
367
    Dim limit
368
    If NOT QStrPar("mode") Then
5062 dpurdie 369
        limit = " AND SDK_STATE NOT IN ('D')"
5050 dpurdie 370
    End If
371
 
372
    SqlQry = "SELECT SDKTAG_ID,SDKTAG_NAME,SDK_STATE as SDKTAG_STATE from SDK_TAGS" &_
373
             " WHERE SDK_ID = :SDK_ID" & limit &_
374
             " ORDER BY UPPER(SDKTAG_NAME) ASC"
375
 
376
    ' Perform Query
377
    objEH.ErrorRedirect = FALSE
378
    objEH.TryORA ( OraSession )
379
    On Error Resume Next
380
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
381
    objEH.CatchORA ( OraSession )
382
 
383
    ' Process Results
384
    Set oJSON.data("aaData") = oJSON.Collection()
385
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
386
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
387
        Dim ii
388
        for ii = 0 to rsQry.Fields.Count - 1
389
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
390
        Next
391
       rsQry.MoveNext
392
    Wend
393
 
394
    result = 0
395
    rsQry.Close
396
    Set rsQry = Nothing
397
 
398
    OraDatabase.Parameters.Remove "SDK_ID"
399
End Sub
400
 
5049 dpurdie 401
'-------------------------------------------------
5052 dpurdie 402
' Function:    getSdkVersionDetails
403
' Description: Get Details for a specific SDK Version
404
'              Hash of:
405
'               Lots of stuff
406
'
407
' Options:      sdktag_id  - SDK Version to get
408
 
409
Sub getSdkVersionDetails
410
    '   Get Data for an existing entry
411
    '   Setup for the database access
412
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
413
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
414
    SqlQry = "SELECT st.SDKTAG_ID, " &_
415
             "  SDKTAG_NAME, " &_
416
             "  DESCRIPTION, " &_
417
             "  st.SDK_ID, " &_
418
             "  TO_CHAR(CREATED_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as CREATED_STAMP , " &_
419
             "  CREATOR_ID, " &_
420
             "  TO_CHAR(STATE_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as STATE_STAMP , " &_
421
             "  STATE_ID, " &_
422
             "  SDK_STATE, " &_
423
             "  SDK_NAME, " &_
424
             "  SDK_COMMENT " &_
425
             "FROM SDK_TAGS st, " &_
426
             "  SDK_NAMES sn " &_
427
             "WHERE st.SDKTAG_ID = :SDKTAG_ID " &_
428
             "AND st.SDK_ID = sn.SDK_ID "
429
 
430
    ' Perform Query
431
    objEH.ErrorRedirect = FALSE
432
    objEH.TryORA ( OraSession )
433
    On Error Resume Next
434
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
435
    objEH.CatchORA ( OraSession )
436
on error goto 0
437
    ' Process Results
438
    Dim resultSet : Set resultSet = oJSON.Collection()
439
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
440
        Dim ii
441
        for ii = 0 to rsQry.Fields.Count - 1
442
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
443
        Next
444
        Set oJSON.data("aaData") = resultSet
445
        result = 0
446
    End If
447
 
448
    result = 0
449
    rsQry.Close
450
    Set rsQry = Nothing
451
 
452
    OraDatabase.Parameters.Remove "SDKTAG_ID"
453
End Sub
454
 
455
'-------------------------------------------------
5055 dpurdie 456
' Function:    updateSdkVersionDetails
457
' Description: Update specific parts of the SDK Version Meta Data
458
'
459
' Options:      sdktag_id       - SDK Version to update
460
'               sdkTagName     -
461
'               sdkTagComment  -
462
 
463
Sub updateSdkVersionDetails
464
    '   Get Data for an existing entry
465
    '   Setup for the database access
466
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
467
    Dim sdkTagName : sdkTagName = QStrPar("sdkTagName")
468
    Dim sdkTagComment : sdkTagComment = QStrPar("sdkTagComment")
469
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
470
    OraDatabase.Parameters.Add "SDKTAG_NAME",      sdkTagName, ORAPARM_INPUT, ORATYPE_VARCHAR2
471
    OraDatabase.Parameters.Add "DESCRIPTION",      sdkTagComment, ORAPARM_INPUT, ORATYPE_VARCHAR2
472
 
473
    '   Update an existing entry
474
    SqlQry = "UPDATE SDK_TAGS SET SDKTAG_NAME = :SDKTAG_NAME, DESCRIPTION = :DESCRIPTION WHERE SDKTAG_ID = :SDKTAG_ID"
475
    objEH.ErrorRedirect = FALSE
476
    objEH.TryORA ( OraSession )
477
    On Error Resume Next
478
    OraDatabase.ExecuteSQL SqlQry
479
    objEH.CatchORA ( OraSession )
480
    On Error GoTo 0
481
    result = 0
482
 
483
    OraDatabase.Parameters.Remove "DESCRIPTION"
484
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
485
    OraDatabase.Parameters.Remove "SDKTAG_ID"
486
End Sub
487
 
488
'-------------------------------------------------
5049 dpurdie 489
' Function:    getProjectList
490
' Description: Get Project information
491
'              Array of:
492
'               proj_id
493
'               proj_name
494
Sub getProjectList
495
    '   Get Data for an existing entry
496
    '   Setup for the database access
497
    SqlQry = "SELECT PROJ_ID,PROJ_NAME from PROJECTS order by PROJ_NAME ASC"
498
 
499
    objEH.ErrorRedirect = FALSE
500
    objEH.TryORA ( OraSession )
501
    On Error Resume Next
502
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
503
    objEH.CatchORA ( OraSession )
504
 
505
    Set oJSON.data("aaData") = oJSON.Collection()
506
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
507
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
508
         Dim ii
509
        for ii = 0 to rsQry.Fields.Count - 1
510
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
511
        Next
512
 
513
       rsQry.MoveNext
514
    Wend
515
    result = 0
516
    rsQry.Close
517
    Set rsQry = Nothing
518
 
519
End Sub
520
 
521
'-------------------------------------------------
522
' Function:    getReleaseList
523
' Description: Get Release information for a project
524
'              Array of:
525
'               rtag_id
526
'               rtag_name
527
'               official
528
'              Also
529
'               proj_id
530
'
531
' Options:      proj_id - Get Releases for given project
532
'               rtag_id - Get Releases for project of this release
533
'               mode    - true: All Releases, otherwise only non-closed releases
534
 
535
Sub getReleaseList
536
    '   Get Data for an existing entry
537
    '   Setup for the database access
538
    Dim rtag_id : rtag_id = QStrPar("rtag_id")
539
    Dim proj_id : proj_id = QStrPar("proj_id")
540
    OraDatabase.Parameters.Add "PROJ_ID",      proj_id, ORAPARM_INPUT, ORATYPE_NUMBER
541
    OraDatabase.Parameters.Add "RTAG_ID",      rtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
542
 
543
    '
544
    '   Limit Selection to non-closed releases
545
    '
546
    Dim limit
547
    If NOT QStrPar("mode") Then
548
        limit = " AND OFFICIAL NOT IN ('Y', 'A')"
549
    End If
550
 
551
    Dim where
552
    If rtag_id <> "" Then
553
        where = " WHERE proj_id = (SELECT PROJ_ID from RELEASE_TAGS where RTAG_ID=:RTAG_ID)" 
554
    Else
555
        where = " WHERE PROJ_ID=:PROJ_ID"
556
    End If
557
 
558
    SqlQry = "SELECT PROJ_ID,RTAG_ID,RTAG_NAME,OFFICIAL  from RELEASE_TAGS" &_
559
             where & limit &_
560
             " ORDER BY RTAG_NAME ASC"
561
 
562
    ' Perform Query
563
    objEH.ErrorRedirect = FALSE
564
    objEH.TryORA ( OraSession )
565
    On Error Resume Next
566
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
567
    objEH.CatchORA ( OraSession )
568
 
569
    ' Process Results
570
    Set oJSON.data("aaData") = oJSON.Collection()
571
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
572
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
573
        Dim ii
574
        for ii = 1 to rsQry.Fields.Count - 1
575
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
576
        Next
577
        proj_id = rsQry.Fields(0) 
578
 
579
       rsQry.MoveNext
580
    Wend
581
 
582
    oJSON.data("proj_id") = proj_id
583
 
584
    result = 0
585
    rsQry.Close
586
    Set rsQry = Nothing
587
 
588
    OraDatabase.Parameters.Remove "RTAG_ID"
589
    OraDatabase.Parameters.Remove "PROJ_ID"
590
End Sub
591
 
592
'-------------------------------------------------
593
' Function:     addNewSdkVersion
594
' Description:  Add a New Sdk Version
5050 dpurdie 595
'               Returns the SDKTAG_ID if the created entry
5049 dpurdie 596
Sub addNewSdkVersion
597
    Dim userId : userId = objAccessControl.UserId()
5050 dpurdie 598
    Dim sdkTagId
5049 dpurdie 599
    '   Add a new entry
600
    '
601
    '   Setup for the database access
602
    '
603
    OraDatabase.Parameters.Add "SDKTAG_NAME",   QStrPar("sdkName"),     ORAPARM_INPUT, ORATYPE_VARCHAR2
604
    OraDatabase.Parameters.Add "DESCRIPTION",   QStrPar("sdkComment"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
605
    OraDatabase.Parameters.Add "SDK_ID",        QStrPar("sdk_id"),      ORAPARM_INPUT, ORATYPE_NUMBER
606
    OraDatabase.Parameters.Add "RTAG_ID",       QStrPar("rtag_id"),     ORAPARM_INPUT, ORATYPE_NUMBER
607
    OraDatabase.Parameters.Add "CREATOR_ID",    userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
608
    OraDatabase.Parameters.Add "STATE_ID",      userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
5050 dpurdie 609
    OraDatabase.Parameters.Add "SDKTAG_ID",     NULL,                   ORAPARM_BOTH, ORATYPE_NUMBER
5049 dpurdie 610
 
611
     '  Test existance - simply to provide a Nice Error message
612
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_NAME = :SDKTAG_NAME AND SDK_ID = :SDK_ID"
613
    objEH.ErrorRedirect = FALSE
614
    objEH.TryORA ( OraSession )
615
    On Error Resume Next
616
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
617
    objEH.CatchORA ( OraSession )
618
    On Error GoTo 0
619
 
620
    If rsQry.RecordCount <> 0 Then
621
        result = -3
622
        oJSON.data("error") = -1
623
        oJSON.data("emsgSummary") = "SDK Verion Name already exists in this SDK family"
624
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
625
    Else
5050 dpurdie 626
        SqlQry = "BEGIN "&_
627
                 " INSERT INTO SDK_TAGS (SDKTAG_NAME, DESCRIPTION, SDK_ID, RTAG_ID, CREATOR_ID, STATE_ID)" &_
628
                 " VALUES (:SDKTAG_NAME, :DESCRIPTION, :SDK_ID, :RTAG_ID, :CREATOR_ID, :STATE_ID)"&_
629
                 " RETURNING SDKTAG_ID INTO :SDKTAG_ID;" &_
630
                 " END;"
5049 dpurdie 631
        objEH.ErrorRedirect = FALSE
632
        objEH.TryORA ( OraSession )
633
        On Error Resume Next
634
        OraDatabase.ExecuteSQL SqlQry
5050 dpurdie 635
        sdkTagId = OraDatabase.Parameters("SDKTAG_ID").Value
636
 
637
        '
638
        '   Create the initial SDK_CONTENT
639
        '
640
        If Err.Number = 0 Then
641
            SqlQry = "INSERT INTO SDK_CONTENT ( SDKTAG_ID, PV_ID) SELECT :SDKTAG_ID, pv_id FROM RELEASE_CONTENT WHERE RTAG_ID = :RTAG_ID"
642
            OraDatabase.ExecuteSQL SqlQry
643
        End If
644
 
5049 dpurdie 645
        objEH.CatchORA ( OraSession )
646
        On Error GoTo 0
647
 
5050 dpurdie 648
        oJSON.data("SDKTAG_ID") = sdkTagId
5049 dpurdie 649
        result = 0
650
    End If
651
 
652
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
653
    OraDatabase.Parameters.Remove "DESCRIPTION"
654
    OraDatabase.Parameters.Remove "SDK_ID"
655
    OraDatabase.Parameters.Remove "RTAG_ID"    
656
    OraDatabase.Parameters.Remove "CREATOR_ID" 
657
    OraDatabase.Parameters.Remove "STATE_ID"   
5050 dpurdie 658
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
5049 dpurdie 659
 
660
End Sub
5050 dpurdie 661
 
662
'-------------------------------------------------
5053 dpurdie 663
' Function:     deleteSdkVersion
664
' Description:  Delete the specified Sdk Version
665
'               Will delete SDK_NAME entry if this is the last one
666
'                   sdktag_id   - Version to delete
667
'
668
'   SHOULD have checks to ensure that its not in use
669
 
670
Sub deleteSdkVersion
671
    Dim sdkTagId : sdkTagId = QStrPar("sdktagId")
672
    '
673
    '   Setup for the database access
674
    '
675
    OraDatabase.Parameters.Add "SDKTAG_ID", sdkTagId, ORAPARM_INPUT, ORATYPE_NUMBER
676
 
677
     '  Test to see if the version is in use - simply to provide a Nice Error message
678
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
679
    objEH.ErrorRedirect = FALSE
680
    objEH.TryORA ( OraSession )
681
    'On Error Resume Next
682
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
683
    objEH.CatchORA ( OraSession )
684
    On Error GoTo 0
685
 
686
    If rsQry.RecordCount = 0 Then
687
        result = -3
688
        oJSON.data("error") = -1
689
        oJSON.data("emsgSummary") = "SDK Verion does not exist"
690
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
691
    Else
692
        ' Determine the number of times this SDK_TAG is in use
693
        ' Determine the sdk_tag
694
        SqlQry = "SELECT st.SDK_ID, st.SDKTAG_ID FROM SDK_TAGS st WHERE SDK_ID IN ( SELECT SDK_ID FROM SDK_TAGS WHERE SDKTAG_ID=:SDKTAG_ID)"
695
 
696
        Dim sdkId, sdkTagCount
697
        objEH.ErrorRedirect = FALSE
698
        objEH.TryORA ( OraSession )
699
        On Error Resume Next
700
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
701
        If Err.Number = 0 Then
702
            sdkTagCount = rsQry.RecordCount
703
            oJSON.data("sdkTagCount") = sdkTagCount
704
 
705
            If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
706
                sdkId = rsQry.Fields(0)
707
                oJSON.data("sdkId") = sdkId
708
            End If
709
 
710
            ' Delete content
711
            SqlQry = "DELETE FROM SDK_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
712
            objEH.ErrorRedirect = FALSE
713
            objEH.TryORA ( OraSession )
714
            On Error Resume Next
715
            OraDatabase.ExecuteSQL SqlQry
716
 
717
            ' Delete tag
718
            If Err.Number = 0 Then
719
                SqlQry = "DELETE FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
720
                OraDatabase.ExecuteSQL SqlQry
721
            End If
722
 
723
            If Err.Number = 0 Then
724
                ' Possibly delete the Sdk Name entry
725
                If sdkTagCount = 1 Then
726
                    SqlQry = "DELETE FROM SDK_NAMES WHERE SDK_ID = :SDK_ID"
727
                    OraDatabase.Parameters.Add "SDK_ID", sdkId, ORAPARM_INPUT, ORATYPE_NUMBER
728
                    OraDatabase.ExecuteSQL SqlQry
729
                    OraDatabase.Parameters.Remove "SDK_ID"   
730
                    oJSON.data("SdkNameRemoved") = sdkId
731
                End If
732
            End If
733
 
734
            objEH.CatchORA ( OraSession )
735
            On Error GoTo 0
736
            result = 0
737
        End If
738
    End If
739
 
740
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
741
 
742
End Sub
743
 
744
'-------------------------------------------------
5052 dpurdie 745
' Function:     setSdkState
746
' Description:  Update the state of the SDK Release
747
'               Request Parameters
748
'                   sdktag_id
749
'                   sdk_state
750
Sub setSdkState
751
    Dim userId : userId = objAccessControl.UserId()
752
    '
753
    '
754
    OraDatabase.Parameters.Add "SDKTAG_ID", QStrPar("sdktagId"),  ORAPARM_INPUT, ORATYPE_NUMBER
755
    OraDatabase.Parameters.Add "SDK_STATE", QStrPar("sdk_state"), ORAPARM_INPUT, ORATYPE_CHAR
756
    OraDatabase.Parameters.Add "STATE_ID",  userId,               ORAPARM_INPUT, ORATYPE_NUMBER
757
 
758
        '   Update an existing entry
759
        SqlQry = "UPDATE SDK_TAGS SET SDK_STATE = :SDK_STATE, STATE_ID = :STATE_ID, STATE_STAMP = SYSTIMESTAMP WHERE SDKTAG_ID = :SDKTAG_ID"
760
        objEH.ErrorRedirect = FALSE
761
        objEH.TryORA ( OraSession )
762
        On Error Resume Next
763
        OraDatabase.ExecuteSQL SqlQry
764
        objEH.CatchORA ( OraSession )
765
        On Error GoTo 0
766
        result = 0
767
 
768
    OraDatabase.Parameters.Remove "STATE_ID"
769
    OraDatabase.Parameters.Remove "SDK_STATE"
770
    OraDatabase.Parameters.Remove "SDKTAG_ID"
771
 
772
End Sub
773
 
774
'-------------------------------------------------
5050 dpurdie 775
' Function:     setSdkContentState
776
' Description:  Update the state of a SDK conent item
777
'               Request Parameters
778
'                   sdktag_id
779
'                   pv_id
780
'                   sdkpkg_state
781
Sub setSdkContentState
782
    '
783
    '
784
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
785
    OraDatabase.Parameters.Add "PV_ID",         QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_VARCHAR2
786
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
787
 
788
        '   Update an existing entry
789
        SqlQry = "UPDATE SDK_CONTENT SET SDKPKG_STATE = :SDKPKG_STATE WHERE SDKTAG_ID = :SDKTAG_ID AND PV_ID = :PV_ID"
790
        objEH.ErrorRedirect = FALSE
791
        objEH.TryORA ( OraSession )
792
        On Error Resume Next
793
        OraDatabase.ExecuteSQL SqlQry
794
        objEH.CatchORA ( OraSession )
795
        On Error GoTo 0
796
        result = 0
797
 
798
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
799
    OraDatabase.Parameters.Remove "PV_ID"
800
    OraDatabase.Parameters.Remove "SDKTAG_ID"
801
 
802
End Sub
5048 dpurdie 803
%>