-
Notifications
You must be signed in to change notification settings - Fork 64
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
Adding new base_query_class arg for associations. #1006
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f105794
Adding new base_query_class arg for associations. Fixes #85
jwoertink aca4228
Added in has_many through case for overriding base_query_class
jwoertink cb1f7fe
Adding the new associations caused truncate to fail. Need to cascade …
jwoertink 29b7637
Working through this edge case for an escape hatch when using has_man…
jwoertink 332adba
Adding an escape hatch for has_many through
jwoertink f807cd5
documenting potential edge case
jwoertink File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
class CreateTransactions::V20240224173636 < Avram::Migrator::Migration::V1 | ||
def migrate | ||
create table_for(Transaction) do | ||
primary_key id : Int64 | ||
add_timestamps | ||
add type : Int32 | ||
add soft_deleted_at : Time? | ||
add_belongs_to user : User, on_delete: :cascade | ||
end | ||
end | ||
|
||
def rollback | ||
drop table_for(Transaction) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
class CreateFollows::V20240225160631 < Avram::Migrator::Migration::V1 | ||
def migrate | ||
create table_for(Follow) do | ||
primary_key id : Int64 | ||
add_timestamps | ||
add soft_deleted_at : Time? | ||
add_belongs_to follower : User, on_delete: :cascade | ||
add_belongs_to followee : User, on_delete: :cascade | ||
end | ||
end | ||
|
||
def rollback | ||
drop table_for(Follow) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
class FollowFactory < BaseFactory | ||
def initialize | ||
before_save do | ||
if operation.follower_id.value.nil? | ||
follower(UserFactory.create) | ||
end | ||
if operation.followee_id.value.nil? | ||
followee(UserFactory.create) | ||
end | ||
end | ||
end | ||
|
||
def follower(u : User) | ||
follower_id(u.id) | ||
end | ||
|
||
def followee(u : User) | ||
followee_id(u.id) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
class TransactionFactory < BaseFactory | ||
def initialize | ||
before_save do | ||
if operation.user_id.value.nil? | ||
user(UserFactory.create) | ||
end | ||
end | ||
end | ||
|
||
def user(u : User) | ||
user_id(u.id) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
class Follow < BaseModel | ||
include Avram::SoftDelete::Model | ||
|
||
table do | ||
column soft_deleted_at : Time? | ||
|
||
belongs_to follower : User | ||
belongs_to followee : User | ||
end | ||
end | ||
|
||
class FollowQuery < Follow::BaseQuery | ||
include Avram::SoftDelete::Query | ||
|
||
def initialize | ||
defaults &.only_kept | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
class Transaction < BaseModel | ||
include Avram::SoftDelete::Model | ||
|
||
enum Type | ||
Unknown | ||
Special | ||
end | ||
|
||
table do | ||
column type : Transaction::Type = Transaction::Type::Unknown | ||
column soft_deleted_at : Time? | ||
belongs_to user : User | ||
end | ||
end | ||
|
||
class TransactionQuery < Transaction::BaseQuery | ||
include Avram::SoftDelete::Query | ||
|
||
def initialize | ||
defaults &.only_kept | ||
end | ||
|
||
def special | ||
type(Transaction::Type::Special) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This had to change because I added the
has_many transactions
to User, and now it was necessary.