Skip to content

Commit

Permalink
transport selection(partial)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcellourbani committed Nov 8, 2018
1 parent a23470c commit 41fbd2e
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
16 changes: 16 additions & 0 deletions src/abap/JSONToAbapXml.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export function JSON2AbapXML(original: any, root: string = "DATA") {
//only flat objects for now, might extend later...
let inner = ""
for (const key of Object.keys(original))
if (original[key])
inner = `${inner}\n<${key}>${original[key] || ""}</${key}>`
else inner = `${inner}\n<${key}/>`

return `<?xml version="1.0" encoding="UTF-8"?><asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<${root}>
${inner}
</${root}>
</asx:values>
</asx:abap>`
}
7 changes: 6 additions & 1 deletion src/adt/AdtConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,12 @@ export class AdtConnection {
})
})
}

createUri(path: string, query: string = "") {
return Uri.parse("adt://" + this.name).with({
path,
query
})
}
connect(): Promise<request.Response> {
return this.myrequest("/sap/bc/adt/compatibility/graph").then(
(response: request.Response) => {
Expand Down
12 changes: 11 additions & 1 deletion src/adt/AdtServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { MetaFolder } from "../fs/MetaFolder"
import { AbapObjectNode, AbapNode, isAbap } from "../fs/AbapNode"
import { AbapObject, TransportStatus } from "../abap/AbapObject"
import { getRemoteList } from "../config"
import { JSON2AbapXML } from "../abap/JSONToAbapXml"
export const ADTBASEURL = "/sap/bc/adt/repository/nodestructure"

// visual studio paths are hierarchic, adt ones aren't
Expand Down Expand Up @@ -57,8 +58,17 @@ export class AdtServer {

const conn = await this.connectionP
await file.abapObject.lock(conn)
if (file.abapObject.transport === TransportStatus.REQUIRED)
if (file.abapObject.transport === TransportStatus.REQUIRED) {
const response = await conn.request(
conn.createUri("/sap/bc/adt/cts/transportchecks"),
"POST",
{
body: JSON2AbapXML({ URI: file.abapObject.getContentsUri(conn).path })
}
)
console.log(response.body)
throw new Error("transport selection not supported(yet)")
}

await file.abapObject.setContents(conn, content)

Expand Down

0 comments on commit 41fbd2e

Please sign in to comment.