func-tbook-isbn.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * Cloud Code test
  3. curl -X POST -H "Content-Type: application/json" -H 'X-Parse-Application-Id: edu-textbook' -d '{ "isbn": "9787302609865" }' http://127.0.0.1:61337/parse/functions/tbookISBN
  4. */
  5. /**
  6. *
  7. */
  8. export function defineTbookISBN(){
  9. Parse.Cloud.define("tbookISBN", async (request) => {
  10. let isbn = request.params.isbn;
  11. if(isbn) {
  12. try{
  13. let url = "https://www.tbook.com.cn/api/api/public/index/search/book_isbn_info";
  14. let response = await fetch(url,{
  15. method:"POST",
  16. json:true,
  17. body:JSON.stringify({isbn:isbn})
  18. });
  19. let text = await response?.text()
  20. try{
  21. let result = JSON.parse(text)
  22. // console.log(result)
  23. if(result?.data?.[0]){
  24. return result?.data?.[0];
  25. }
  26. }catch(err){}
  27. }catch(err){
  28. console.error(err)
  29. }
  30. }
  31. throw new Parse.Error(404,"未找到该图书信息")
  32. },{
  33. fields : {
  34. isbn:{
  35. required:true
  36. }
  37. }
  38. });
  39. Parse.Cloud.define("reviewToken", async (request) => {
  40. let refer = request.headers["referer"] || request.headers["referered"];
  41. console.log(refer)
  42. // 检查referer来源
  43. if (refer?.indexOf('https://145.tbook.com.cn') > -1) {
  44. let user
  45. try{
  46. user = await Parse.User.logIn('145review', 'review-textbook145')
  47. }catch(err1){}
  48. try{
  49. if(!user?.id) user = await Parse.User.signUp("145review",'review-textbook145')
  50. }catch(err2){}
  51. if(user?.id){
  52. console.log(user?.id)
  53. console.log(user?.getSessionToken())
  54. return {token: user?.getSessionToken()}
  55. }
  56. throw new Parse.Error(404,"invalid user")
  57. }else{
  58. throw new Parse.Error(404,"not found referer")
  59. }
  60. })
  61. }