Skip to content

Commit

Permalink
fix: EventFactory saves where conditions if any. Docs updated.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArtemKorneevGA committed Jan 13, 2024
1 parent b7a1a1c commit dda313f
Show file tree
Hide file tree
Showing 58 changed files with 705 additions and 121 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ https://github.com/ArtemKorneevGA/dataform-ga4-sessions/assets/30120916/a639292e

For example your `package.json` could look like this:

```json
```json {5}
{
"name": "my-dataform-project",
"dependencies": {
"@dataform/core": "2.6.7",
"dataform-ga4-sessions": "https://github.com/ArtemKorneevGA/dataform-ga4-sessions/archive/refs/tags/v1.0.3.tar.gz"
"dataform-ga4-sessions": "https://github.com/ArtemKorneevGA/dataform-ga4-sessions/archive/refs/tags/v1.0.4.tar.gz"
}
}
```
Expand Down
46 changes: 46 additions & 0 deletions definitions/tests/test_events_with_where.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
const ga4 = require("index");
const helpers = require("dataform-ga4-helpers");

const { rows } = require("includes/tests/data/events_with_where.js");
const { rows: result } = require("includes/tests/data/purchase_result.js");

// console.log('rows',rows);

// Base session config
const eventConfig = {
database: constants.GA4_DATABASE,
dataset: dataform.projectConfig.vars.GA4_DATASET,
incrementalTableName: dataform.projectConfig.vars.GA4_TABLE,
nonIncrementalTableName: dataform.projectConfig.vars.GA4_TABLE,
nonIncrementalTableEventStepWhere: "device.category = 'desktop'",
};

const ef = new ga4.EventFactory(eventConfig);
let purchase = ef.createPurchase();

// Rename table
purchase.target = {
tableName: "event_with_where",
};

// Unit testing working only for table type
purchase.getConfig = () => {
return {
type: "table",
};
};

purchase.publish();

// Run tests
test("test_event_with_where")
.dataset("event_with_where")
.input(
{
database: constants.GA4_DATABASE,
schema: dataform.projectConfig.vars.GA4_DATASET,
name: dataform.projectConfig.vars.GA4_TABLE,
},
helpers.getSqlUnionAllFromRows(rows)
)
.expect(helpers.getSqlUnionAllFromRows(result));
8 changes: 4 additions & 4 deletions docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
<meta name="generator" content="Docusaurus v2.0.0-beta.6">
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.4/mermaid.min.js"></script>
<script src="/init.js"></script><title data-react-helmet="true">Page Not Found | Dataform GA4 Sessions</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Dataform GA4 Sessions"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/404.html"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_tag" content="default"><link data-react-helmet="true" rel="shortcut icon" href="/dataform-ga4-sessions/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/404.html"><link data-react-helmet="true" rel="alternate" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/404.html" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/404.html" hreflang="x-default"><link rel="stylesheet" href="/dataform-ga4-sessions/assets/css/styles.04041f29.css">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/runtime~main.1b667cc4.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/main.14eb498a.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/runtime~main.54eeed49.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/main.db21b18a.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div><a href="#" class="skipToContent_OuoZ">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/dataform-ga4-sessions/"><img src="/dataform-ga4-sessions/img/logo.png" alt="Dataform GA4 Sessions" class="themedImage_TMUO themedImage--light_4Vu1 navbar__logo"><img src="/dataform-ga4-sessions/img/logo.png" alt="Dataform GA4 Sessions" class="themedImage_TMUO themedImage--dark_uzRr navbar__logo"><b class="navbar__title">Dataform GA4 Sessions</b></a><a class="navbar__item navbar__link" href="/dataform-ga4-sessions/">Docs</a><a class="navbar__item navbar__link" href="/dataform-ga4-sessions/api">API Reference</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/ArtemKorneevGA/dataform-ga4-sessions" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_wgqa"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a><div class="react-toggle toggle_2i4l react-toggle--disabled"><div class="react-toggle-track" role="button" tabindex="-1"><div class="react-toggle-track-check"><span class="toggle_iYfV">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_iYfV">🌞</span></div><div class="react-toggle-thumb"></div></div><input type="checkbox" class="react-toggle-screenreader-only" aria-label="Switch between dark and light mode"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 Artem Korneev. Built with Docusaurus.</div></div></div></footer></div>
<script src="/dataform-ga4-sessions/assets/js/runtime~main.1b667cc4.js"></script>
<script src="/dataform-ga4-sessions/assets/js/main.14eb498a.js"></script>
<script src="/dataform-ga4-sessions/assets/js/runtime~main.54eeed49.js"></script>
<script src="/dataform-ga4-sessions/assets/js/main.db21b18a.js"></script>
</body>
</html>
8 changes: 4 additions & 4 deletions docs/api.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
<meta name="generator" content="Docusaurus v2.0.0-beta.6">
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.4/mermaid.min.js"></script>
<script src="/init.js"></script><title data-react-helmet="true">API Reference | Dataform GA4 Sessions</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/api"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" content="current"><meta data-react-helmet="true" name="docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="API Reference | Dataform GA4 Sessions"><meta data-react-helmet="true" name="description" content="dataform-ga4-sessions"><meta data-react-helmet="true" property="og:description" content="dataform-ga4-sessions"><link data-react-helmet="true" rel="shortcut icon" href="/dataform-ga4-sessions/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/api"><link data-react-helmet="true" rel="alternate" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/api" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://ArtemKorneevGA.github.io/dataform-ga4-sessions/api" hreflang="x-default"><link rel="stylesheet" href="/dataform-ga4-sessions/assets/css/styles.04041f29.css">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/runtime~main.1b667cc4.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/main.14eb498a.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/runtime~main.54eeed49.js" as="script">
<link rel="preload" href="/dataform-ga4-sessions/assets/js/main.db21b18a.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
Expand Down Expand Up @@ -67,7 +67,7 @@
<strong>Example</strong> </p><div class="codeBlockContainer_J+bg"><div class="codeBlockContent_csEI js"><pre tabindex="0" class="prism-code language-js codeBlock_rtdJ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_1zSZ"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Ignore all processing steps except the first</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain">sessions</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">skipLastNonDirectStep</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain">sessions</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">skipChannelStep</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><span class="token-line" style="color:#393A34"><span class="token plain">sessions</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">skipSourceMediumStep</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_M3SB clean-btn">Copy</button></div></div><a name="module_dataform-ga4-sessions..Session+publish"></a><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithStickyNavbar_y2LR" id="sessionpublish"></a>session.publish()<a class="hash-link" href="#sessionpublish" title="Direct link to heading">#</a></h4><p>Main method to publish Dataform Action. This method generates SQL and then uses Dataform core <a href="https://cloud.google.com/dataform/docs/reference/dataform-core-reference#publish" target="_blank" rel="noopener noreferrer">publish</a> method to generate incremental and non-incremental session table.</p><p><strong>Kind</strong>: instance method of <a href="#module_dataform-ga4-sessions..Session"><code>Session</code></a><br>
<strong>Example</strong> </p><div class="codeBlockContainer_J+bg"><div class="codeBlockContent_csEI js"><pre tabindex="0" class="prism-code language-js codeBlock_rtdJ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_1zSZ"><span class="token-line" style="color:#393A34"><span class="token plain">session</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">publish</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_M3SB clean-btn">Copy</button></div></div><a name="module_dataform-ga4-sessions..Session+publishAssertions"></a><h4><a aria-hidden="true" tabindex="-1" class="anchor anchor__h4 anchorWithStickyNavbar_y2LR" id="sessionpublishassertions"></a>session.publishAssertions()<a class="hash-link" href="#sessionpublishassertions" title="Direct link to heading">#</a></h4><p>The method to publish default <a href="https://cloud.google.com/dataform/docs/assertions" target="_blank" rel="noopener noreferrer">Dataform assertions</a>.</p><p><strong>Kind</strong>: instance method of <a href="#module_dataform-ga4-sessions..Session"><code>Session</code></a><br>
<strong>Example</strong> </p><div class="codeBlockContainer_J+bg"><div class="codeBlockContent_csEI js"><pre tabindex="0" class="prism-code language-js codeBlock_rtdJ thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_1zSZ"><span class="token-line" style="color:#393A34"><span class="token plain">session</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">publishAssertions</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_M3SB clean-btn">Copy</button></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/facebook/docusaurus/edit/main/website/docs/api.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_mS5F" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_mt2f"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/dataform-ga4-sessions/events/event-id"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">« Event id</div></a></div><div class="pagination-nav__item pagination-nav__item--next"></div></nav></div></div><div class="col col--3"><div class="tableOfContents_vrFS thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#dataform-ga4-sessions" class="table-of-contents__link">dataform-ga4-sessions</a><ul><li><a href="#dataform-ga4-sessionsdataformaction" class="table-of-contents__link">dataform-ga4-sessions~DataformAction</a></li><li><a href="#dataform-ga4-sessionsevent--dataformaction" class="table-of-contents__link">dataform-ga4-sessions~Event ⇐ <code>DataformAction</code></a></li><li><a href="#dataform-ga4-sessionseventfactory" class="table-of-contents__link">dataform-ga4-sessions~EventFactory</a></li><li><a href="#dataform-ga4-sessionssession--dataformaction" class="table-of-contents__link">dataform-ga4-sessions~Session ⇐ <code>DataformAction</code></a></li><li><a href="#default-session-processing-steps" class="table-of-contents__link">Default session processing steps</a></li><li><a href="#default-session-assertions" class="table-of-contents__link">Default session assertions</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 Artem Korneev. Built with Docusaurus.</div></div></div></footer></div>
<script src="/dataform-ga4-sessions/assets/js/runtime~main.1b667cc4.js"></script>
<script src="/dataform-ga4-sessions/assets/js/main.14eb498a.js"></script>
<script src="/dataform-ga4-sessions/assets/js/runtime~main.54eeed49.js"></script>
<script src="/dataform-ga4-sessions/assets/js/main.db21b18a.js"></script>
</body>
</html>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit dda313f

Please sign in to comment.