public findByPublicKey(publicKey: string): Promise<Client> {
    return new Promise((resolve: (client: Client) => void, reject: (error: Error) => void) => {
      InMemoryClientRepository.database.findOne({ publicKey }, (error: Error, document: any) => {
        if (!document) {
          resolve(null);