Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
278436b
Merge pull request #15 from teesofttech/feature/1-bootstrap-sdk
teesofttech Jun 12, 2026
cd5ac55
Add Termii HTTP pipeline
teesofttech Jun 13, 2026
f5a006a
Merge pull request #17 from teesofttech/feature/2-http-pipeline
teesofttech Jun 13, 2026
7dab5c1
Document Termii API coverage matrix
teesofttech Jun 13, 2026
3fc2925
Merge pull request #18 from teesofttech/feature/14-api-coverage-matrix
teesofttech Jun 13, 2026
3cd58e9
Add Termii API error handling
teesofttech Jun 13, 2026
d2974a9
Merge pull request #19 from teesofttech/feature/6-error-handling-vali…
teesofttech Jun 13, 2026
74efd4d
Add reusable SDK test infrastructure
teesofttech Jun 13, 2026
ee5a006
Merge pull request #20 from teesofttech/feature/10-test-infrastructure
teesofttech Jun 13, 2026
6e216e2
Add Termii messaging API client
teesofttech Jun 13, 2026
45fe40f
Merge pull request #21 from teesofttech/feature/7-messaging-api
teesofttech Jun 13, 2026
61985e3
Add CI test and package validation workflow
teesofttech Jun 13, 2026
8a3f824
Merge pull request #22 from teesofttech/feature/11-ci-workflow
teesofttech Jun 13, 2026
f4e779b
Prepare NuGet package metadata
teesofttech Jun 13, 2026
c8c732c
Merge pull request #23 from teesofttech/feature/8-nuget-package-metadata
teesofttech Jun 13, 2026
93ae6c7
Add Termii sender ID API client
teesofttech Jun 13, 2026
4559dac
Merge pull request #24 from teesofttech/feature/3-sender-id-apis
teesofttech Jun 13, 2026
0dd8544
Add Termii Number API client
teesofttech Jun 13, 2026
da2be66
Merge pull request #25 from teesofttech/feature/5-number-api
teesofttech Jun 13, 2026
a2e8e89
Add Termii Token API client
teesofttech Jun 13, 2026
ffea699
Merge pull request #26 from teesofttech/feature/4-token-api
teesofttech Jun 13, 2026
5126ad3
Add Termii Insights API client
teesofttech Jun 13, 2026
28f4278
Merge pull request #27 from teesofttech/feature/9-insights-api
teesofttech Jun 13, 2026
654d4ee
Prepare v0.2.0 release (#28)
teesofttech Jun 13, 2026
d70d1b0
Improve README developer experience (#29)
teesofttech Jun 13, 2026
1d08d7d
Add Insights message analytics endpoint (#35)
teesofttech Jun 13, 2026
6866752
Add webhook event models and documentation (#36)
teesofttech Jun 14, 2026
9644292
Prepare v0.3.0 release (#37)
teesofttech Jun 14, 2026
af4f8bd
Add Campaign phonebook APIs (#38)
teesofttech Jun 14, 2026
8e9c700
Add product email API (#39)
teesofttech Jun 14, 2026
39ce31d
Add WhatsApp template APIs (#40)
teesofttech Jun 14, 2026
4a02806
Prepare v0.4.0 release (#41)
teesofttech Jun 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 33 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@ on:
push:
branches:
- main
workflow_dispatch:

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
test:
name: Build, test, and pack
runs-on: ubuntu-latest

steps:
Expand All @@ -20,10 +26,32 @@ jobs:
dotnet-version: 8.0.x

- name: Restore
run: dotnet restore
run: dotnet restore Termii.SDK.sln

- name: Build
run: dotnet build --configuration Release --no-restore
run: dotnet build Termii.SDK.sln --configuration Release --no-restore

- name: Unit tests
run: dotnet test tests/Termii.Tests/Termii.Tests.csproj --configuration Release --no-build --logger "trx;LogFileName=unit-tests.trx"

- name: Integration tests
run: dotnet test tests/Termii.IntegrationTests/Termii.IntegrationTests.csproj --configuration Release --no-build --logger "trx;LogFileName=integration-tests.trx"

- name: Pack
run: dotnet pack src/Termii/Termii.csproj --configuration Release --no-build --output artifacts/packages

- name: Test
run: dotnet test --configuration Release --no-build
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: |
**/TestResults/*.trx

- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: nuget-package
path: |
artifacts/packages/*.nupkg
artifacts/packages/*.snupkg
61 changes: 61 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Release

on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
inputs:
publish:
description: Publish to NuGet when NUGET_API_KEY is configured.
required: true
default: false
type: boolean

permissions:
contents: read

jobs:
package:
name: Build, test, pack, and publish
runs-on: ubuntu-latest
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Restore
run: dotnet restore Termii.SDK.sln

- name: Build
run: dotnet build Termii.SDK.sln --configuration Release --no-restore

- name: Unit tests
run: dotnet test tests/Termii.Tests/Termii.Tests.csproj --configuration Release --no-build --logger "trx;LogFileName=unit-tests.trx"

- name: Integration tests
run: dotnet test tests/Termii.IntegrationTests/Termii.IntegrationTests.csproj --configuration Release --no-build --logger "trx;LogFileName=integration-tests.trx"

- name: Pack
run: dotnet pack src/Termii/Termii.csproj --configuration Release --no-build --output artifacts/packages

- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: nuget-package
path: |
artifacts/packages/*.nupkg
artifacts/packages/*.snupkg

- name: Publish to NuGet
if: ${{ (github.event_name == 'push' || inputs.publish) && env.NUGET_API_KEY != '' }}
run: dotnet nuget push "artifacts/packages/*.nupkg" --source https://api.nuget.org/v3/index.json --api-key "$NUGET_API_KEY" --skip-duplicate
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ obj/
.vs/
.vscode/
.idea/
.DS_Store
TestResults/
coverage/
*.user
Expand Down
7 changes: 7 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://github.com/teesofttech/Termii.SDK</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
<Authors>Teesoft Tech</Authors>
<Company>Teesoft Tech</Company>
</PropertyGroup>
Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Teesoft Tech

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading