• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hicommonwealth / commonwealth / 13396568090

18 Feb 2025 05:29PM UTC coverage: 46.331% (+0.4%) from 45.957%
13396568090

push

github

web-flow
Merge pull request #10990 from hicommonwealth/tim/parse-raw-event-viem

1300 of 3083 branches covered (42.17%)

Branch coverage included in aggregate %.

27 of 67 new or added lines in 10 files covered. (40.3%)

31 existing lines in 8 files now uncovered.

2476 of 5067 relevant lines covered (48.87%)

38.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

11.11
/libs/model/src/user/GetUserReferrals.query.ts
1
import { type Query } from '@hicommonwealth/core';
2
import * as schemas from '@hicommonwealth/schemas';
3
import { QueryTypes } from 'sequelize';
4
import { z } from 'zod';
5
import { models } from '../database';
6

7
const sql = `
29✔
8
WITH 
9
referrer_addresses AS (
10
  SELECT DISTINCT address
11
  FROM "Addresses"
12
  WHERE user_id = :user_id AND address LIKE '0x%'),
13
referrals AS (
14
  SELECT
15
    namespace_address,
16
    referrer_address,
17
    referee_address,
18
    eth_chain_id,
19
    transaction_hash,
20
    referrer_received_eth_amount,
21
    created_on_chain_timestamp,
22
    created_at,
23
    updated_at
24
  FROM "Referrals"
25
  WHERE referrer_address IN (SELECT * FROM referrer_addresses)),
26
referee_addresses AS (
27
  SELECT DISTINCT A.address, A.user_id
28
  FROM "Addresses" A
29
  JOIN referrals ON referee_address = A.address
30
)
31
SELECT 
32
  R.*,
33
  U.id as referee_user_id, 
34
  U.profile as referee_profile,
35
  C.id as community_id,
36
  C.name as community_name,
37
  C.icon_url as community_icon_url
38
FROM referrals R
39
  JOIN referee_addresses RA ON RA.address = R.referee_address
40
  JOIN "Users" U ON U.id = RA.user_id
41
  LEFT JOIN "Communities" C ON C.namespace = R.namespace_address
42
  ;
43
`;
44

45
export function GetUserReferrals(): Query<typeof schemas.GetUserReferrals> {
UNCOV
46
  return {
×
47
    ...schemas.GetUserReferrals,
48
    auth: [],
49
    secure: true,
50
    body: async ({ actor, payload }) => {
51
      // only super admin can get referrals for all users
52
      const id =
UNCOV
53
        actor.user.isAdmin && payload.user_id ? payload.user_id : actor.user.id;
×
UNCOV
54
      const result = await models.sequelize.query(sql, {
×
55
        type: QueryTypes.SELECT,
56
        raw: true,
57
        replacements: { user_id: id },
58
      });
UNCOV
59
      return result as Array<z.infer<typeof schemas.ReferralView>>;
×
60
    },
61
  };
62
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc