You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: join.rb
    path of file: ./repos/socializer/app/concepts/socializer/group/services
    
    the code of the file until where you have to start completion: # frozen_string_l
    
        def call
          privacy = group.privacy

          active = true if privacy.public?
          active = false if privacy.restricted?

          if privacy.private?
            raise(Errors::PrivateGroupCannotSelfJoin)
            # TODO: add errors to base, make it a validation problem instead of
            #       failing
            #
            # Need to check errors or something before running create!.
            # Check valid?
            # This else condition is really privacy.private? we could return
            # the errors.add and see if that shows in the view
            # message = Errors::PrivateGroupCannotSelfJoin.new.message
            # person.memberships.errors.add(:base, message)
            # add the error to the field
            # group.errors.add(:privacy, :invalid, message)
          end