Parcourir la source

feat: new tbookISBN function

ryanemax il y a 9 mois
Parent
commit
a24435af35
3 fichiers modifiés avec 45 ajouts et 0 suppressions
  1. 42 0
      server/cloud/tbook/func-tbook-isbn.js
  2. 1 0
      server/cloud/tbook/index.js
  3. 2 0
      server/server.js

+ 42 - 0
server/cloud/tbook/func-tbook-isbn.js

@@ -0,0 +1,42 @@
+
+
+
+/**
+ * Cloud Code test
+ curl -X POST -H "Content-Type: application/json" -H 'X-Parse-Application-Id: edu-textbook' -d '{ "isbn": "9787111312383" }' http://127.0.0.1:61337/parse/functions/tbookISBN
+ */
+
+
+/**
+ * 
+ */
+export function defineTbookISBN(){
+    Parse.Cloud.define("tbookISBN", async (request) => {
+        let isbn = request.params.isbn;
+        if(isbn) {
+            try{
+                let url = "https://www.tbook.com.cn/api/api/public/index/search/book_isbn_info";
+                let response = await fetch(url,{
+                    method:"POST",
+                    json:true,
+                    body:JSON.stringify({isbn:isbn})
+                });
+                let text = await response?.text()
+                try{
+                    let result = JSON.parse(text)
+                    return result?.data?.[0];
+                }catch(err){}
+            }catch(err){
+                console.error(err)
+            }
+        }
+        throw new Parse.Error(404,"未找到该图书信息")
+    },{
+        fields : {
+            isbn:{
+                required:true
+            }
+        }
+    });
+}
+  

+ 1 - 0
server/cloud/tbook/index.js

@@ -0,0 +1 @@
+export * from "./func-tbook-isbn"

+ 2 - 0
server/server.js

@@ -47,6 +47,7 @@ import { defineAliOssSTS } from "./cloud/aliyun"
 import { defineAuthingLogin, defineUserBeforeDelete, defineUserBeforeSave } from "./cloud/authing"
 import { defineAuthingDepartSync } from "./cloud/authing"
 import { defineUserAfterSave } from "./cloud/authing"
+import { defineTbookISBN } from "./cloud/tbook"
 import { importData } from "./db/func/import-data"
 
 
@@ -184,6 +185,7 @@ async function initParseAndDatabase(){
       defineUserAfterSave();
       defineUserBeforeSave();
       defineUserBeforeDelete();
+      defineTbookISBN();
     });
  
     console.log("正在启动管理看板...")