Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BSS-46] GetFollowers, GetProfiles, CreateRecord and PostBuilder API #12

Merged
merged 69 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
c5bce80
Implement GetFollowers request and resource
shahmal1yev Sep 18, 2024
01b0c7e
Merge branch 'development' into bss-46
shahmal1yev Sep 20, 2024
94324e7
Update GetFollowers Request and add Unit Tests
shahmal1yev Sep 20, 2024
0ba6138
Merge branch 'development' into bss-46
shahmal1yev Sep 21, 2024
dc6deb1
Add GetProfiles request for fetching multiple user profiles
shahmal1yev Sep 21, 2024
52d51f3
FIX: Refactor GetProfile request and update related tests
shahmal1yev Sep 21, 2024
93b85f7
WIP: Implement Facet lexicon
shahmal1yev Sep 23, 2024
0ac209e
Update dependencies
shahmal1yev Sep 30, 2024
37acb54
WIP: Implement Post Builder
shahmal1yev Oct 8, 2024
4c3a7c7
WIP: Implement components of post builder, improve validation, and ad…
shahmal1yev Oct 9, 2024
7c50c29
WIP: PostBuilder Implementation. Add video test and move tests to cor…
shahmal1yev Oct 10, 2024
35e9abf
Implement CaptionInterface for proper JSON serialization
shahmal1yev Oct 10, 2024
641b632
Add size() method to Image class and interface
shahmal1yev Oct 11, 2024
14076f6
Refactor collections by introducing `EmbedCollection` trait for code …
shahmal1yev Oct 11, 2024
2166327
Fix typo in exception message for class and add unit test for size v…
shahmal1yev Oct 11, 2024
af507a8
Add External embed class and corresponding test file
shahmal1yev Oct 12, 2024
871a967
Implement JsonSerializable and Stringable for External class
shahmal1yev Oct 12, 2024
8d4ecc5
Implement Record: Add Record and StrongRef classes with tests
shahmal1yev Oct 12, 2024
4b0bda1
Implement RecordWithMedia and MediaInterface
shahmal1yev Oct 12, 2024
e2ed997
Implemented `embed` method on PostBuilder API and refactored embeds
shahmal1yev Oct 12, 2024
f03e978
Code cleanup and test refinements
shahmal1yev Oct 12, 2024
4c091f8
Merge branch 'embeds' into post-builder
shahmal1yev Oct 12, 2024
365e04d
Implement 'reply' method in PostBuilder API and fix text length valid…
shahmal1yev Oct 12, 2024
f4b1568
Merge 'reply' branch: Implement 'reply' method in PostBuilder API and…
shahmal1yev Oct 12, 2024
612b6a5
Add language support to PostBuilderContract and Post class
shahmal1yev Oct 12, 2024
74d77a9
Merge branch 'langs' into post-builder
shahmal1yev Oct 12, 2024
b249eb9
SelfLabels lexicon and corresponding unit tests
shahmal1yev Oct 13, 2024
b21eb13
Add support for labels in PostBuilderContract and Post class
shahmal1yev Oct 13, 2024
28a0544
Merge branch 'labels' into post-builder
shahmal1yev Oct 13, 2024
c2ef9b7
Add tags support to PostBuilder API
shahmal1yev Oct 13, 2024
7c0d52c
Merge branch 'tags' into post-builder
shahmal1yev Oct 13, 2024
47ae425
Merge branch 'post-builder' into bss-46: PostBuilder API added in com…
shahmal1yev Oct 13, 2024
06487f5
Fix PHPStan-reported issues
shahmal1yev Oct 13, 2024
72a3b05
Keep lexicons in one place
shahmal1yev Oct 18, 2024
7532e68
Add a feature test for record creation
shahmal1yev Oct 18, 2024
ef1dcc7
Add new helpers: encode_varint, decode_varint
shahmal1yev Oct 24, 2024
ba5b355
Merge branch 'varint'
shahmal1yev Oct 24, 2024
409d03f
Merge branch 'main' into bss-46
shahmal1yev Oct 26, 2024
68c12ed
refactor: standardize naming conventions and imports
shahmal1yev Oct 26, 2024
872ee32
feat: implement IPFS content identifier system
shahmal1yev Oct 26, 2024
885ab9f
feat: add base32 encoding system
shahmal1yev Oct 26, 2024
7c8a0db
refactor blob implemention by atproto specification
shahmal1yev Oct 26, 2024
de63116
refactor: update embed system for new blob implementation
shahmal1yev Oct 26, 2024
de6e089
test: comprehensive test coverage update
shahmal1yev Oct 26, 2024
d518dfa
update dependencies
shahmal1yev Oct 26, 2024
38c86c5
test: update exception message assertions for compatibility
shahmal1yev Oct 26, 2024
329a83f
refactor: update embed interface implementation for autofill $type field
shahmal1yev Oct 27, 2024
bd36a66
refactor: update uploadBlob lexicon for fixing issues
shahmal1yev Oct 27, 2024
ce2a8ba
enhance: update createRecord implementation
shahmal1yev Oct 27, 2024
1958396
Refactor tests for compatibility with recent changes and resolve test…
shahmal1yev Oct 27, 2024
02d212a
Optimize imports and apply PSR 12 using PHP CS Fixer
shahmal1yev Oct 27, 2024
d1458b1
Complete the implementation of the "GetFollowers" lexicon.
shahmal1yev Oct 27, 2024
5a251dd
Complete the implementation of "CreateRecord" lexicon
shahmal1yev Oct 27, 2024
7d5f1cf
Rename and remove the old API
shahmal1yev Oct 30, 2024
de1fd12
Refactor: Rename and Standardize Lexicon Interfaces and Traits
shahmal1yev Oct 30, 2024
8a264a6
refactor: standardize NSID handling with Lexicon trait
shahmal1yev Nov 3, 2024
5cfc5db
fix: refactor RichText feature serialization because they are not a l…
shahmal1yev Nov 3, 2024
21822c4
fix: remove hardcoded credentials from test
shahmal1yev Nov 3, 2024
0fd1a3f
Update workflow: remove the 'continue-on-error' flag from feature tes…
shahmal1yev Nov 3, 2024
b19ea29
refactor: use getenv() instead of $_ENV superglobal
shahmal1yev Nov 3, 2024
9bde17e
fix: standardize HTTP methods in API endpoints
shahmal1yev Nov 3, 2024
8966948
refactor: improve RichText handling and blob upload
shahmal1yev Nov 3, 2024
8cff568
refactor: rename Resource to Response and Asset to Object for better …
shahmal1yev Nov 6, 2024
9eace03
refactor: improve object and response contract hierarchy
shahmal1yev Nov 8, 2024
e77c0e2
test: add integration test for GetProfiles endpoint
shahmal1yev Nov 8, 2024
4af03c7
refactor: simplify collection type validation
shahmal1yev Nov 8, 2024
5dcaa1d
refactor: switch test asset from PNG to WebP format
shahmal1yev Nov 8, 2024
17e985f
docs: enhance README with detailed examples and structure
shahmal1yev Nov 8, 2024
e3470c9
apply php-cs-fixer and import optimizing
shahmal1yev Nov 8, 2024
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
6 changes: 5 additions & 1 deletion .github/workflows/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ jobs:
matrix:
php-version: ['7.4', '8.0', '8.1']
name: PHP ${{ matrix.php-version }} Test

env:
BLUESKY_IDENTIFIER: ${{ secrets.BLUESKY_IDENTIFIER }}
BLUESKY_PASSWORD: ${{ secrets.BLUESKY_PASSWORD }}

steps:
- uses: shivammathur/setup-php@v2
with:
Expand Down Expand Up @@ -43,7 +48,6 @@ jobs:

- name: Run Feature Tests
run: composer run-script test-feature
continue-on-error: true

- name: Static Analyse
run: composer run-script analyse
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,15 @@ fabric.properties
# Build data
/build/

# End of https://www.toptal.com/developers/gitignore/api/phpstorm+all,composer,phpunit
### PHP-CS-Fixer ###
# Covers PHP CS Fixer
# Reference: https://cs.symfony.com/

# Generated files
.php-cs-fixer.cache

# Local config See: https://cs.symfony.com/doc/config.html
.php-cs-fixer.php

# End of https://www.toptal.com/developers/gitignore/api/php-cs-fixer

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) 2024 Eldar Shahmaliyev

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