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