Guest User

Untitled

a guest
Nov 21st, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. import { PartnerServiceClient } from '../../../../proto/model/partner_pb_service';
  2. import { SERVICE_HOST } from '../../../transports/GRPCTransport';
  3. import {
  4. ListPartnerRequest,
  5. ListPartnerResponse,
  6. Partner,
  7. } from '../../../../proto/model/partner_pb';
  8. import {
  9. fetchDataCanceled,
  10. grpcToPromise,
  11. makeNumberFiltering,
  12. } from '../../../utils/grpc/grpcHelpers';
  13. import { NumberCondition } from '../../../../proto/github.com/infobloxopen/atlas-app-toolkit/query/collection_operators_pb';
  14.  
  15. const partnerServiceClient = new PartnerServiceClient(SERVICE_HOST);
  16.  
  17. export async function getPartnersByCustomerId(
  18. customerId: number,
  19. ): Promise<Partner[]> {
  20. const query = new ListPartnerRequest();
  21. const numberCondition = new NumberCondition();
  22. numberCondition.setFieldPathList(['customer', 'id']);
  23. numberCondition.setValue(customerId);
  24. numberCondition.setType(NumberCondition.Type.EQ);
  25.  
  26. query.setFilter(makeNumberFiltering(numberCondition));
  27.  
  28. const canceled = fetchDataCanceled({
  29. transport: grpcToPromise<ListPartnerRequest, ListPartnerResponse>(
  30. partnerServiceClient.list.bind(partnerServiceClient),
  31. ),
  32. data: query,
  33. });
  34.  
  35. const result = canceled.then(({ response }) => (response ? response.getResultsList() : []));
  36.  
  37. if (/*something to cancel request*/ customerId === 0) {
  38. canceled.cancel();
  39. return [];
  40. }
  41.  
  42. return result;
  43. }
Add Comment
Please, Sign In to add comment