Advertisement
Guest User

Untitled

a guest
May 12th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. //rpc file
  2. message LoginRequest {
  3. string userName = 1;
  4. string password = 2;
  5. }
  6.  
  7. message LoginResponse {
  8. string userName = 1;
  9. string password = 2;
  10. }
  11.  
  12. rpc login(LoginRequest) returns (LoginResponse) {
  13. option (error) = "Error";
  14. }
  15.  
  16. //rpc request file
  17. import {
  18. LoginReq,
  19. LoginResp,
  20. } from './LoginServiceObjs';
  21. import { generateUrl, errorHandling } from './helper';
  22. import promisify from "../utils/util"
  23.  
  24. const wxPromisify = promisify(wx)
  25. const wxRequest = wxPromisify('request')
  26.  
  27. export function SetBaseUrl(url: string) {
  28. baseUrl = url;
  29. }
  30.  
  31. var authToken = "token";
  32.  
  33. export function SetAuthToken(token: string) {
  34. authToken = token;
  35. }
  36.  
  37. export function Login(params:LoginReq): Promise<LoginResp|never> {
  38. let url: string = generateUrl(baseUrl, "LoginService", "Login");
  39. return wxRequest({ url: url,
  40. data: params, method:'POST', header:{'Authorization': 'token ' + authToken}}).then(res => {
  41. if (typeof res.data === 'object') {
  42. try {
  43. return Promise.resolve(res.data as LoginResp)
  44. } catch (e) {
  45. return Promise.reject(res.data);
  46. }
  47. }
  48. return Promise.reject(res.data);
  49. }).catch(err => {
  50. // handle error response
  51. return errorHandling(err)
  52. });
  53. }
  54. }
  55.  
  56.  
  57. //promisify file
  58. /**
  59. * fn {function} API service
  60. */
  61.  
  62. const promisify = (wx) => {
  63. return (method) => {
  64. return (option) => {
  65. return new Promise ((resolve,reject) => {
  66. wx[method]({
  67. ...option,
  68. success:(res) => { resolve(res) },
  69. fail: (err) => {reject(err)}
  70. })
  71. })
  72. }
  73. }
  74. }
  75.  
  76. export default promisify
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement