Browse Source

add sp2019 to worker

pull/7615/head
Hervé de CHAVIGNY 4 years ago
parent
commit
71fc85b0ad
  1. 4
      packages/server/src/integrations/sp2019.ts
  2. 31
      packages/worker/src/api/controllers/global/sp2019.ts
  3. 6
      packages/worker/src/api/index.ts
  4. 27
      packages/worker/src/api/routes/global/sp2019.js
  5. 6
      packages/worker/src/api/routes/index.js
  6. 37
      packages/worker/src/utilities/sp2019.js

4
packages/server/src/integrations/sp2019.ts

@ -141,8 +141,8 @@ import {
const nodeFetch = require("node-fetch")
const env = require("../environment")
const result = await nodeFetch(
env.WORKER_URL+'/api/global/sp2019/lists',
//"http://localhost:9090/lists",
//env.WORKER_URL+'/api/global/sp2019/lists',
"http://localhost:9090/lists",
this.request(null, {
method: "POST",
body: {

31
packages/worker/src/api/controllers/global/sp2019.ts

@ -1,31 +0,0 @@
const {
getGlobalDB,
getTenantId,
isUserInAppTenant,
} = require("@budibase/backend-core/tenancy")
const { sp2019Lists } = require("../../../utilities/sp2019")
exports.sp2019Lists = async (ctx:any) => {
let {
siteUrl,
username,
password,
domain,
} = ctx.request.body
/*let user
if (userId) {
const db = getGlobalDB()
user = await db.get(userId)
}*/
const response = await sp2019Lists(siteUrl,
username,
password,
domain,
)
ctx.body = {
...response
}
}

6
packages/worker/src/api/index.ts

@ -55,11 +55,7 @@ const PUBLIC_ENDPOINTS = [
route: "/api/global/users/tenant/:id",
method: "GET",
},
// sharepoint 2019 connector
{
route: "/api/global/sp2019/lists",
method: "POST",
},
]
const NO_TENANCY_ENDPOINTS = [

27
packages/worker/src/api/routes/global/sp2019.js

@ -1,27 +0,0 @@
const Router = require("@koa/router")
const controller = require("../../controllers/global/sp2019")
const { joiValidator } = require("@budibase/backend-core/auth")
const { adminOnly } = require("@budibase/backend-core/auth")
const Joi = require("joi")
const router = Router()
function buildSP2019Validation() {
// prettier-ignore
return joiValidator.body(Joi.object({
siteUrl: Joi.string().allow("", null),
username: Joi.string().allow("", null),
password: Joi.string().allow("", null),
domain: Joi.string().allow("", null),
}).required().unknown(true))
}
router.post(
"/api/global/sp2019/lists",
buildSP2019Validation(),
adminOnly,
controller.sp2019Lists
)
module.exports = router

6
packages/worker/src/api/routes/index.js

@ -13,8 +13,7 @@ const selfRoutes = require("./global/self")
const licenseRoutes = require("./global/license")
const migrationRoutes = require("./system/migrations")
const accountRoutes = require("./system/accounts")
// sharepoint 2019
const sp2019Routes = require("./global/sp2019")
let userGroupRoutes = api.groups
exports.routes = [
@ -33,6 +32,5 @@ exports.routes = [
userGroupRoutes,
migrationRoutes,
accountRoutes,
// sharepoint 2019
sp2019Routes,
]

37
packages/worker/src/utilities/sp2019.js

@ -1,37 +0,0 @@
import { JsomNode } from "sp-jsom-node"
exports.sp2019Lists = async (siteUrl,username,password,domain) => {
console.log("Site url :",siteUrl)
console.log("username :",username)
console.log("password :",password)
console.log("domain :",domain)
const sp2019 = new JsomNode({
modules: ["taxonomy", "userprofiles"],
})
const ctx = sp2019
.init({
siteUrl: siteUrl,
authOptions: {
username: username,
password: password,
domain: domain
}
})
const spctx = await ctx.getContext()
const oListsCollection = spctx.get_web().get_lists()
spctx.load(oListsCollection, "Include(Title)")
await spctx.executeQueryPromise()
const arrList = []
const listsTitlesArr = oListsCollection.get_data().map(l => {
arrList.push({ Title:l.get_title() })
})
console.log("List test :", arrList)
console.log("List :", listsTitlesArr)
return arrList
}
Loading…
Cancel
Save