Compare commits

...

8 Commits

Author SHA1 Message Date
gitea-actions[bot]
43eed98f7c chore(release): 0.5.2 [skip ci]
## [0.5.2](https://git.debyl.io/debyltech/go-snipcart/compare/v0.5.1...v0.5.2) (2026-01-04)

### Bug Fixes

* use fedora runner label for Gitea Actions ([de552fc](de552fc8d4))
2026-01-03 22:44:41 -05:00
Bastian de Byl
de552fc8d4 fix: use fedora runner label for Gitea Actions
All checks were successful
Release / release (push) Successful in 21s
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 22:43:39 -05:00
gitea-actions[bot]
70d6955a63 chore(release): 0.5.1 [skip ci]
## [0.5.1](https://git.debyl.io/debyltech/go-snipcart/compare/v0.5.0...v0.5.1) (2026-01-03)

### Bug Fixes

* migrate semantic-release from GitHub to Gitea ([3b19919](3b1991970b))
* remove persist-credentials to allow semantic-release push ([a8646a6](a8646a6d52))
2026-01-03 17:24:30 -05:00
Bastian de Byl
a8646a6d52 fix: remove persist-credentials to allow semantic-release push
All checks were successful
Release / release (push) Successful in 23s
2026-01-03 17:24:06 -05:00
Bastian de Byl
3b1991970b fix: migrate semantic-release from GitHub to Gitea
Some checks failed
Release / release (push) Failing after 19s
- Replace @semantic-release/github with @saithodev/semantic-release-gitea
- Configure giteaUrl for git.debyl.io
- Use Gitea's automatic GITHUB_TOKEN as GITEA_TOKEN
- Set git author/committer for bot commits
2026-01-02 17:27:31 -05:00
semantic-release-bot
dd69d72adb chore(release): 0.5.0 [skip ci]
# [0.5.0](https://git.debyl.io/debyltech/go-snipcart/compare/v0.4.1...v0.5.0) (2026-01-02)

### Features

* add discount and savings fields to Order struct ([043da74](043da741fa))
2026-01-01 23:24:29 -05:00
Bastian de Byl
8bcd564447 chore: add semantic-release workflow and configuration
Some checks failed
Release / release (push) Failing after 41s
Added GitHub Actions workflow for automatic versioning and releases using semantic-release with Angular commit convention.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 11:11:16 -04:00
Bastian de Byl
043da741fa feat: add discount and savings fields to Order struct
Added Discount struct with comprehensive discount information and added discount-related fields (Discounts, SavedAmount, TotalRebateRate) to Order struct to expose discount data from Snipcart API.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 10:49:36 -04:00
7 changed files with 197 additions and 0 deletions

42
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Release
on:
push:
branches: [main]
permissions:
contents: write
issues: write
pull-requests: write
jobs:
release:
runs-on: fedora
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install semantic-release
run: |
npm install -g semantic-release \
@semantic-release/commit-analyzer \
@semantic-release/release-notes-generator \
@semantic-release/changelog \
@saithodev/semantic-release-gitea \
@semantic-release/git
- name: Release
env:
# Use Gitea's automatic token (requires contents: write permission above)
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: gitea-actions[bot]
GIT_AUTHOR_EMAIL: gitea-actions[bot]@users.noreply.git.debyl.io
GIT_COMMITTER_NAME: gitea-actions[bot]
GIT_COMMITTER_EMAIL: gitea-actions[bot]@users.noreply.git.debyl.io
run: npx semantic-release

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.json *.json
!.releaserc.json
*.sum *.sum
config/* config/*

44
.releaserc.json Normal file
View File

@@ -0,0 +1,44 @@
{
"branches": ["main"],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{"message": "*#patch*", "release": "patch"},
{"message": "*#minor*", "release": "minor"},
{"message": "*#major*", "release": "major"},
{"type": "fix", "release": "patch"},
{"type": "feat", "release": "minor"},
{"type": "perf", "release": "patch"}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "angular"
}
],
[
"@semantic-release/changelog",
{
"changelogFile": "CHANGELOG.md"
}
],
[
"@saithodev/semantic-release-gitea",
{
"giteaUrl": "https://git.debyl.io"
}
],
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}

21
CHANGELOG.md Normal file
View File

@@ -0,0 +1,21 @@
## [0.5.2](https://git.debyl.io/debyltech/go-snipcart/compare/v0.5.1...v0.5.2) (2026-01-04)
### Bug Fixes
* use fedora runner label for Gitea Actions ([de552fc](https://git.debyl.io/debyltech/go-snipcart/commit/de552fc8d4c37fb5af5e93ce4f4b8ae6e8e4bfcc))
## [0.5.1](https://git.debyl.io/debyltech/go-snipcart/compare/v0.5.0...v0.5.1) (2026-01-03)
### Bug Fixes
* migrate semantic-release from GitHub to Gitea ([3b19919](https://git.debyl.io/debyltech/go-snipcart/commit/3b1991970b64ac8c983006d4cf18bc6e080d6511))
* remove persist-credentials to allow semantic-release push ([a8646a6](https://git.debyl.io/debyltech/go-snipcart/commit/a8646a6d5258435b26a052ad57136032bb949ec7))
# [0.5.0](https://git.debyl.io/debyltech/go-snipcart/compare/v0.4.1...v0.5.0) (2026-01-02)
### Features
* add discount and savings fields to Order struct ([043da74](https://git.debyl.io/debyltech/go-snipcart/commit/043da741fafd24e3fb0bddbe06880c81c1b64b1f))

31
example_get_orders_by.go Normal file
View File

@@ -0,0 +1,31 @@
package main
import (
"flag"
"log"
"github.com/debyltech/go-snipcart/snipcart"
)
func main() {
snipcartApiKey := flag.String("key", "", "Snipcart API Key")
flag.Parse()
if *snipcartApiKey == "" {
log.Fatal("missing -key flag")
}
Client := snipcart.NewClient(*snipcartApiKey)
response, err := Client.GetOrders(map[string]string{
"placedBy": "bastian@bdebyl.net",
})
if err != nil {
log.Fatal(err)
}
log.Println("no errors continuing")
for k, v := range response.Items {
log.Printf("%v: %v\n", k, v)
}
}

32
example_update_order.go Normal file
View File

@@ -0,0 +1,32 @@
package main
import (
"flag"
"log"
"github.com/debyltech/go-snipcart/snipcart"
)
func main() {
snipcartApiKey := flag.String("key", "", "Snipcart API Key")
flag.Parse()
if *snipcartApiKey == "" {
log.Fatal("missing -key flag")
}
Client := snipcart.NewClient(*snipcartApiKey)
updateOrder := snipcart.SnipcartOrderUpdate{
ShippingRateId: "b1f5a5bca34d4e9ea7a55c011b22644f;5677a809435d46cbbb5dda2485295326",
}
response, err := Client.UpdateOrder("e6e72c95-31df-4594-b9a3-8603ce3914c8", &updateOrder)
if err != nil {
log.Fatal(err)
}
for k, v := range response.Items {
log.Printf("%v: %v\n", k, v)
}
}

View File

@@ -26,6 +26,29 @@ type Item struct {
Shippable bool `json:"shippable,omitempty"` Shippable bool `json:"shippable,omitempty"`
} }
type Discount struct {
ID string `json:"id"`
DiscountID string `json:"discountId"`
Name string `json:"name"`
Code string `json:"code,omitempty"`
Trigger string `json:"trigger,omitempty"`
Type string `json:"type,omitempty"`
Rate float64 `json:"rate,omitempty"`
Amount float64 `json:"amount,omitempty"`
AmountSaved float64 `json:"amountSaved,omitempty"`
NormalizedRate float64 `json:"normalizedRate,omitempty"`
Combinable bool `json:"combinable"`
HasSavedAmount bool `json:"hasSavedAmount"`
MaxDiscountsPerItem *int `json:"maxDiscountsPerItem,omitempty"`
TotalToReach *float64 `json:"totalToReach,omitempty"`
ProductIds string `json:"productIds,omitempty"`
Categories string `json:"categories,omitempty"`
NumberOfUsages int `json:"numberOfUsages,omitempty"`
AppliesOnAllRecurring bool `json:"appliesOnAllRecurringOrders"`
CreationDate string `json:"creationDate,omitempty"`
ModificationDate string `json:"modificationDate,omitempty"`
}
type OrderTax struct { type OrderTax struct {
Name string `json:"taxName"` Name string `json:"taxName"`
Rate float64 `json:"taxRate"` Rate float64 `json:"taxRate"`
@@ -81,6 +104,9 @@ type Order struct {
ShippingProvider string `json:"shippingProvider,omitempty"` ShippingProvider string `json:"shippingProvider,omitempty"`
ShippingMethod string `json:"shippingMethod,omitempty"` ShippingMethod string `json:"shippingMethod,omitempty"`
ShippingRateId string `json:"shippingRateUserDefinedId,omitempty"` ShippingRateId string `json:"shippingRateUserDefinedId,omitempty"`
Discounts []Discount `json:"discounts,omitempty"`
SavedAmount float64 `json:"savedAmount,omitempty"`
TotalRebateRate float64 `json:"totalRebateRate,omitempty"`
Items []Item `json:"items"` Items []Item `json:"items"`
Taxes []OrderTax `json:"taxes,omitempty"` Taxes []OrderTax `json:"taxes,omitempty"`
Metadata any `json:"metadata"` Metadata any `json:"metadata"`